From owner-svn-soc-all@FreeBSD.ORG Sun Jun 10 03:28:13 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 652931065670 for ; Sun, 10 Jun 2012 03:28:12 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Sun, 10 Jun 2012 03:28:12 +0000 Date: Sun, 10 Jun 2012 03:28:12 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120610032812.652931065670@hub.freebsd.org> Cc: Subject: socsvn commit: r237391 - soc2012/jhagewood X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 03:28:13 -0000 Author: jhagewood Date: Sun Jun 10 03:28:11 2012 New Revision: 237391 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237391 Log: Deleted: soc2012/jhagewood/ From owner-svn-soc-all@FreeBSD.ORG Sun Jun 10 03:28:27 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 08C04106564A for ; Sun, 10 Jun 2012 03:28:26 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Sun, 10 Jun 2012 03:28:26 +0000 Date: Sun, 10 Jun 2012 03:28:26 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120610032826.08C04106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237392 - soc2012/jhagewood X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 03:28:27 -0000 Author: jhagewood Date: Sun Jun 10 03:28:25 2012 New Revision: 237392 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237392 Log: Added: soc2012/jhagewood/ From owner-svn-soc-all@FreeBSD.ORG Sun Jun 10 03:29:43 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id F01DC1065676 for ; Sun, 10 Jun 2012 03:29:40 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Sun, 10 Jun 2012 03:29:40 +0000 Date: Sun, 10 Jun 2012 03:29:40 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120610032940.F01DC1065676@hub.freebsd.org> Cc: Subject: socsvn commit: r237393 - in soc2012/jhagewood: . diff diff/diff diff/diff-orig diff/gabor_diff diff3 diff3/diff3 diff3/diff3-orig mdocml mdocml/mdocml-1.12.1 mdocml/mdocml-1.12.1-orig mdocml/ports-... X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 03:29:43 -0000 Author: jhagewood Date: Sun Jun 10 03:29:40 2012 New Revision: 237393 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237393 Log: Added: soc2012/jhagewood/Milestones soc2012/jhagewood/diff/ soc2012/jhagewood/diff/diff/ soc2012/jhagewood/diff/diff-orig/ soc2012/jhagewood/diff/diff-orig/Makefile soc2012/jhagewood/diff/diff-orig/diff (contents, props changed) soc2012/jhagewood/diff/diff-orig/diff.1 soc2012/jhagewood/diff/diff-orig/diff.1.gz (contents, props changed) soc2012/jhagewood/diff/diff-orig/diff.c soc2012/jhagewood/diff/diff-orig/diff.h soc2012/jhagewood/diff/diff-orig/diffdir.c soc2012/jhagewood/diff/diff-orig/diffreg.c soc2012/jhagewood/diff/diff-orig/pathnames.h soc2012/jhagewood/diff/diff/Makefile soc2012/jhagewood/diff/diff/diff (contents, props changed) soc2012/jhagewood/diff/diff/diff.1 soc2012/jhagewood/diff/diff/diff.1.gz (contents, props changed) soc2012/jhagewood/diff/diff/diff.c soc2012/jhagewood/diff/diff/diff.h soc2012/jhagewood/diff/diff/diffdir.c soc2012/jhagewood/diff/diff/diffreg.c soc2012/jhagewood/diff/diff/pathnames.h soc2012/jhagewood/diff/gabor_diff/ soc2012/jhagewood/diff/gabor_diff/Makefile soc2012/jhagewood/diff/gabor_diff/diff.1 soc2012/jhagewood/diff/gabor_diff/diff.c soc2012/jhagewood/diff/gabor_diff/diff.h soc2012/jhagewood/diff/gabor_diff/diffdir.c soc2012/jhagewood/diff/gabor_diff/diffreg.c soc2012/jhagewood/diff/gabor_diff/pathnames.h soc2012/jhagewood/diff/hagewood-diff.patch soc2012/jhagewood/diff/original.patch soc2012/jhagewood/diff3/ soc2012/jhagewood/diff3/diff3/ soc2012/jhagewood/diff3/diff3-orig/ soc2012/jhagewood/diff3/diff3-orig/Makefile soc2012/jhagewood/diff3/diff3-orig/diff3.1 soc2012/jhagewood/diff3/diff3-orig/diff3.ksh soc2012/jhagewood/diff3/diff3-orig/diff3.sh soc2012/jhagewood/diff3/diff3-orig/diff3prog.c soc2012/jhagewood/diff3/diff3/Makefile soc2012/jhagewood/diff3/diff3/diff3.1 soc2012/jhagewood/diff3/diff3/diff3.ksh soc2012/jhagewood/diff3/diff3/diff3.sh soc2012/jhagewood/diff3/diff3/diff3prog.c soc2012/jhagewood/diff3/hagewood-diff3.patch soc2012/jhagewood/mdocml/ soc2012/jhagewood/mdocml/hagewood-mdocml-ns.patch soc2012/jhagewood/mdocml/hagewood-mdocml-ti.patch soc2012/jhagewood/mdocml/manpaths.txt soc2012/jhagewood/mdocml/mdocml-1.12.1/ soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/ soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/Makefile soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/TODO soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/apropos.1 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/apropos.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/apropos_db.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/apropos_db.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/arch.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/arch.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/att.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/att.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/catman.8 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/catman.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/cgi.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/chars.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/chars.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/compat_fgetln.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/compat_getsubopt.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/compat_strlcat.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/compat_strlcpy.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/config.h.post soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/config.h.pre soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/demandoc.1 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/demandoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/eqn.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/eqn.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/eqn_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/eqn_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/example.style.css soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/external.png (contents, props changed) soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/html.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/index.css soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/index.sgml soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/lib.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/lib.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/libman.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/libmandoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/libmdoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/libroff.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/main.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/main.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man-cgi.css soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man.cgi.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_hash.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_macro.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_validate.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc.1 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc.3 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc_char.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandocdb.8 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandocdb.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandocdb.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/manpath.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/manpath.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_argv.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_hash.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_macro.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_man.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_validate.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/msec.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/msec.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/out.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/out.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/preconv.1 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/preconv.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/predefs.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/read.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/roff.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/roff.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/st.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/st.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/style.css soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_data.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_layout.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_opts.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/term.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/term_ascii.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/term_ps.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-fgetln.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-getsubopt.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-mmap.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-strlcat.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-strlcpy.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-strptime.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tree.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/vol.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/vol.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/whatis.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/Makefile soc2012/jhagewood/mdocml/mdocml-1.12.1/TODO soc2012/jhagewood/mdocml/mdocml-1.12.1/apropos.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/apropos.c soc2012/jhagewood/mdocml/mdocml-1.12.1/apropos_db.c soc2012/jhagewood/mdocml/mdocml-1.12.1/apropos_db.h soc2012/jhagewood/mdocml/mdocml-1.12.1/arch.c soc2012/jhagewood/mdocml/mdocml-1.12.1/arch.in soc2012/jhagewood/mdocml/mdocml-1.12.1/att.c soc2012/jhagewood/mdocml/mdocml-1.12.1/att.in soc2012/jhagewood/mdocml/mdocml-1.12.1/catman.8 soc2012/jhagewood/mdocml/mdocml-1.12.1/catman.c soc2012/jhagewood/mdocml/mdocml-1.12.1/cgi.c soc2012/jhagewood/mdocml/mdocml-1.12.1/chars.c soc2012/jhagewood/mdocml/mdocml-1.12.1/chars.in soc2012/jhagewood/mdocml/mdocml-1.12.1/compat_fgetln.c soc2012/jhagewood/mdocml/mdocml-1.12.1/compat_getsubopt.c soc2012/jhagewood/mdocml/mdocml-1.12.1/compat_strlcat.c soc2012/jhagewood/mdocml/mdocml-1.12.1/compat_strlcpy.c soc2012/jhagewood/mdocml/mdocml-1.12.1/config.h.post soc2012/jhagewood/mdocml/mdocml-1.12.1/config.h.pre soc2012/jhagewood/mdocml/mdocml-1.12.1/demandoc.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/demandoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1/eqn.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/eqn.c soc2012/jhagewood/mdocml/mdocml-1.12.1/eqn_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/eqn_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/example.style.css soc2012/jhagewood/mdocml/mdocml-1.12.1/external.png (contents, props changed) soc2012/jhagewood/mdocml/mdocml-1.12.1/hagewood-mdocml.patch soc2012/jhagewood/mdocml/mdocml-1.12.1/html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/html.h soc2012/jhagewood/mdocml/mdocml-1.12.1/index.css soc2012/jhagewood/mdocml/mdocml-1.12.1/index.sgml soc2012/jhagewood/mdocml/mdocml-1.12.1/lib.c soc2012/jhagewood/mdocml/mdocml-1.12.1/lib.in soc2012/jhagewood/mdocml/mdocml-1.12.1/libman.h soc2012/jhagewood/mdocml/mdocml-1.12.1/libmandoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1/libmdoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1/libroff.h soc2012/jhagewood/mdocml/mdocml-1.12.1/main.c soc2012/jhagewood/mdocml/mdocml-1.12.1/main.h soc2012/jhagewood/mdocml/mdocml-1.12.1/man-cgi.css soc2012/jhagewood/mdocml/mdocml-1.12.1/man.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/man.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man.cgi.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/man.h soc2012/jhagewood/mdocml/mdocml-1.12.1/man_hash.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man_macro.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man_validate.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc.3 soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc_char.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/mandocdb.8 soc2012/jhagewood/mdocml/mdocml-1.12.1/mandocdb.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mandocdb.h soc2012/jhagewood/mdocml/mdocml-1.12.1/manpath.c soc2012/jhagewood/mdocml/mdocml-1.12.1/manpath.h soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_argv.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_hash.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_macro.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_man.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_validate.c soc2012/jhagewood/mdocml/mdocml-1.12.1/msec.c soc2012/jhagewood/mdocml/mdocml-1.12.1/msec.in soc2012/jhagewood/mdocml/mdocml-1.12.1/out.c soc2012/jhagewood/mdocml/mdocml-1.12.1/out.h soc2012/jhagewood/mdocml/mdocml-1.12.1/preconv.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/preconv.c soc2012/jhagewood/mdocml/mdocml-1.12.1/predefs.in soc2012/jhagewood/mdocml/mdocml-1.12.1/read.c soc2012/jhagewood/mdocml/mdocml-1.12.1/roff.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/roff.c soc2012/jhagewood/mdocml/mdocml-1.12.1/st.c soc2012/jhagewood/mdocml/mdocml-1.12.1/st.in soc2012/jhagewood/mdocml/mdocml-1.12.1/style.css soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_data.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_layout.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_opts.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/term.h soc2012/jhagewood/mdocml/mdocml-1.12.1/term_ascii.c soc2012/jhagewood/mdocml/mdocml-1.12.1/term_ps.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-fgetln.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-getsubopt.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-mmap.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-strlcat.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-strlcpy.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-strptime.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tree.c soc2012/jhagewood/mdocml/mdocml-1.12.1/vol.c soc2012/jhagewood/mdocml/mdocml-1.12.1/vol.in soc2012/jhagewood/mdocml/mdocml-1.12.1/whatis.1 soc2012/jhagewood/mdocml/mdocml-manpage-errors.txt soc2012/jhagewood/mdocml/ports-textproc-patches/ soc2012/jhagewood/mdocml/ports-textproc-patches/patch-config.txt soc2012/jhagewood/mdocml/ports-textproc-patches/patch-lib.in.txt soc2012/jhagewood/mdocml/ports-textproc-patches/patch-mdoc_validate.c soc2012/jhagewood/mdocml/ports-textproc-patches/patch-msec.in.txt soc2012/jhagewood/mdocml/tests/ soc2012/jhagewood/mdocml/tests/compile-man-pages.sh (contents, props changed) soc2012/jhagewood/mdocml/tests/mdocml-test.sh (contents, props changed) soc2012/jhagewood/sdiff/ soc2012/jhagewood/sdiff/Makefile soc2012/jhagewood/sdiff/common.c soc2012/jhagewood/sdiff/common.h soc2012/jhagewood/sdiff/edit.c soc2012/jhagewood/sdiff/extern.h soc2012/jhagewood/sdiff/sdiff.1 soc2012/jhagewood/sdiff/sdiff.c Added: soc2012/jhagewood/Milestones ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/Milestones Sun Jun 10 03:29:40 2012 (r237393) @@ -0,0 +1,30 @@ +May 21 - June 17 + + Implement all missing features of mdocml, including legacy features. + Testing of mdocml. + +June 18 - July 1 + + Complete diff + Debugging and testing of diff + +July 2 - July 18 + + Mid-term evaluations. + Complete sdiff + Debugging and testing of sdiff + +July 19 - August 5 + + Complete diff3 + Debugging and testing of diff3 + +August 6 – August 12 + + Thouroughly test and benchmark all utilities. + +August 13 - August 20 + + "Pencils down" period. + Finish cleaning up code and do any testing that might be left. + Write documentation. Added: soc2012/jhagewood/diff/diff-orig/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/diff/diff-orig/Makefile Sun Jun 10 03:29:40 2012 (r237393) @@ -0,0 +1,10 @@ +# $FreeBSD$ +# $OpenBSD: Makefile,v 1.2 2003/06/25 02:42:50 deraadt Exp $ + +DEBUG_FLAGS+= -g + +PROG= diff +SRCS= diff.c diffdir.c diffreg.c +CFLAGS+= -std=c99 -Wall -pedantic + +.include Added: soc2012/jhagewood/diff/diff-orig/diff ============================================================================== Binary file. No diff available. Added: soc2012/jhagewood/diff/diff-orig/diff.1 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/diff/diff-orig/diff.1 Sun Jun 10 03:29:40 2012 (r237393) @@ -0,0 +1,511 @@ +.\" $FreeBSD$ +.\" $OpenBSD: diff.1,v 1.33 2007/05/31 19:20:09 jmc Exp $ +.\" +.\" Copyright (c) 1980, 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)diff.1 8.1 (Berkeley) 6/30/93 +.\" +.Dd Apr 7, 2008 +.Dt DIFF 1 +.Os +.Sh NAME +.Nm diff +.Nd differential file and directory comparator +.Sh SYNOPSIS +.Nm diff +.Op Fl abdilpqTtw +.Op Fl I Ar pattern +.Oo +.Fl c | e | f | +.Fl n | u +.Oc +.Op Fl L Ar label +.Ar file1 file2 +.Nm diff +.Op Fl abdilpqTtw +.Op Fl I Ar pattern +.Op Fl L Ar label +.Fl C Op Ar number +.Ar file1 file2 +.Nm diff +.Op Fl abdilqtw +.Op Fl I Ar pattern +.Fl D Ar string +.Ar file1 file2 +.Nm diff +.Op Fl abdilpqTtw +.Op Fl I Ar pattern +.Op Fl L Ar label +.Fl U Ar number +.Ar file1 file2 +.Nm diff +.Op Fl abdilNPpqrsTtw +.Op Fl I Ar pattern +.Oo +.Fl c | e | f | +.Fl n | u +.Oc +.Bk -words +.Op Fl L Ar label +.Op Fl S Ar name +.Op Fl X Ar file +.Op Fl x Ar pattern +.Ek +.Ar dir1 dir2 +.Nm diff +.Op Fl v +.Sh DESCRIPTION +The +.Nm +utility compares the contents of +.Ar file1 +and +.Ar file2 +and writes to the standard output the list of changes necessary to +convert one file into the other. +No output is produced if the files are identical. +.Pp +Output options (mutually exclusive): +.Bl -tag -width Ds +.It Fl C Op Ar number , Fl Fl context Ns = Ns Op Ar number +Like +.Fl c +but produces a diff with +.Ar number +lines of context. +.It Fl c +Produces a diff with 3 lines of context. +With +.Fl c +the output format is modified slightly: +the output begins with identification of the files involved and +their creation dates and then each change is separated +by a line with fifteen +.Li * Ns 's . +The lines removed from +.Ar file1 +are marked with +.Sq \&-\ \& ; +those added to +.Ar file2 +are marked +.Sq \+\ \& . +Lines which are changed from one file to the other are marked in +both files with +.Sq !\ \& . +Changes which lie within 3 lines of each other are grouped together on +output. +.It Fl D Ar string , Fl Fl ifdef Ns = Ns Ar string +Creates a merged version of +.Ar file1 +and +.Ar file2 +on the standard output, with C preprocessor controls included so that +a compilation of the result without defining +.Ar string +is equivalent to compiling +.Ar file1 , +while defining +.Ar string +will yield +.Ar file2 . +.It Fl e , Fl Fl ed +Produces output in a form suitable as input for the editor utility, +.Xr ed 1 , +which can then be used to convert file1 into file2. +.Pp +Extra commands are added to the output when comparing directories with +.Fl e , +so that the result is a +.Xr sh 1 +script for converting text files which are common to the two directories +from their state in +.Ar dir1 +to their state in +.Ar dir2 . +.It Fl f +Identical output to that of the +.Fl e +flag, but in reverse order. +It cannot be digested by +.Xr ed 1 . +.It Fl n , Fl Fl rcs +Produces a script similar to that of +.Fl e , +but in the opposite order and with a count of changed lines on each +insert or delete command. +This is the form used by +.Xr rcsdiff 1 . +.It Fl q , Fl Fl brief +Just print a line when the files differ. +Does not output a list of changes. +.It Fl U Op Ar number , Fl Fl unified Ns = Ns Op Ar number +Like +.Fl u +but produces a diff with +.Ar number +lines of context. +.It Fl u +Produces a +.Em unified +diff with 3 lines of context. +A unified diff is similar to the context diff produced by the +.Fl c +option. +However, unlike with +.Fl c , +all lines to be changed (added and/or removed) are present in +a single section. +.El +.Pp +Comparison options: +.Bl -tag -width Ds +.It Fl a , Fl Fl text +Treat all files as +.Tn ASCII +text. +Normally +.Nm +will simply print +.Dq Binary files ... differ +if files contain binary characters. +Use of this option forces +.Nm +to produce a diff. +.It Fl b , Fl Fl ignore-space-change +Causes trailing blanks (spaces and tabs) to be ignored, and other +strings of blanks to compare equal. +.It Fl d , Fl Fl minimal +Try very hard to produce a diff as small as possible. +This may consume a lot of processing power and memory when processing +large files with many changes. +.It Fl I Ar pattern , Fl Fl ignore-matching-lines Ns = Ns Ar pattern +Ignores changes, insertions, and deletions whose lines match the +extended regular expression +.Ar pattern . +Multiple +.Fl I +patterns may be specified. +All lines in the change must match some pattern for the change to be +ignored. +See +.Xr re_format 7 +for more information on regular expression patterns. +.It Fl i , Fl Fl ignore-case +Ignores the case of letters. +E.g., +.Dq A +will compare equal to +.Dq a . +.It Fl L Ar label +Print +.Ar label +instead of the first (and second, if this option is specified twice) +file name and time in the context or unified diff header. +.It Fl l , Fl Fl paginate +Long output format; each text file +.Nm diff Ns \'d +is piped through +.Xr pr 1 +to paginate it; +other differences are remembered and summarized +after all text file differences are reported. +.It Fl p , Fl Fl show-c-function +With unified and context diffs, show with each change +the first 40 characters of the last line before the context beginning +with a letter, an underscore or a dollar sign. +For C source code following standard layout conventions, this will +show the prototype of the function the change applies to. +.It Fl T , Fl Fl initial-tab +Print a tab rather than a space before the rest of the line for the +normal, context or unified output formats. +This makes the alignment of tabs in the line consistent. +.It Fl t , Fl Fl expand-tabs +Will expand tabs in output lines. +Normal or +.Fl c +output adds character(s) to the front of each line which may screw up +the indentation of the original source lines and make the output listing +difficult to interpret. +This option will preserve the original source's indentation. +.It Fl w , Fl Fl ignore-all-space +Is similar to +.Fl b +but causes whitespace (blanks and tabs) to be totally ignored. +E.g., +.Dq if (\ \&a == b \&) +will compare equal to +.Dq if(a==b) . +.El +.Pp +Directory comparison options: +.Bl -tag -width Ds +.It Fl N , Fl Fl new-file +If a file is found in only one directory, act as if it was found in the +other directory too but was of zero size. +.It Fl P +If a file is found only in +.Ar dir2 , +act as if it was found in +.Ar dir1 +too but was of zero size. +.It Fl r , Fl Fl recursive +Causes application of +.Nm +recursively to common sub7 directories encountered. +.It Fl S Ar name , Fl starting-file Ns = Ns Ar name +Re-starts a directory +.Nm +in the middle, beginning with file +.Ar name . +.It Fl s , Fl Fl report-identical-files +Causes +.Nm +to report files which are the same, which are otherwise not mentioned. +.It Fl X Ar file , Fl Fl exclude-from Ns = Ns Ar file +Exclude files and subdirectories from comparison whose basenames match +lines in +.Ar file . +Multiple +.Fl X +options may be specified. +.It Fl x Ar pattern , Fl Fl exclude Ns = Ns Ar pattern +Exclude files and subdirectories from comparison whose basenames match +.Ar pattern . +Patterns are matched using shell-style globbing via +.Xr fnmatch 3 . +Multiple +.Fl x +options may be specified. +.It Fl v , Fl Fl version +Print version ino. +.El +.Pp +If both arguments are directories, +.Nm +sorts the contents of the directories by name, and then runs the +regular file +.Nm +algorithm, producing a change list, +on text files which are different. +Binary files which differ, +common subdirectories, and files which appear in only one directory +are described as such. +In directory mode only regular files and directories are compared. +If a non-regular file such as a device special file or +.Tn FIFO +is encountered, a diagnostic message is printed. +.Pp +If only one of +.Ar file1 +and +.Ar file2 +is a directory, +.Nm +is applied to the non-directory file and the file contained in +the directory file with a filename that is the same as the +last component of the non-directory file. +.Pp +If either +.Ar file1 +or +.Ar file2 +is +.Sq Fl , +the standard input is +used in its place. +.Ss Output Style +The default (without +.Fl e , +.Fl c , +or +.Fl n +.\" -C +options) +output contains lines of these forms, where +.Va XX , YY , ZZ , QQ +are line numbers respective of file order. +.Pp +.Bl -tag -width "XX,YYcZZ,QQ" -compact +.It Li XX Ns Ic a Ns Li YY +At (the end of) line +.Va XX +of +.Ar file1 , +append the contents +of line +.Va YY +of +.Ar file2 +to make them equal. +.It Li XX Ns Ic a Ns Li YY,ZZ +Same as above, but append the range of lines, +.Va YY +through +.Va ZZ +of +.Ar file2 +to line +.Va XX +of file1. +.It Li XX Ns Ic d Ns Li YY +At line +.Va XX +delete +the line. +The value +.Va YY +tells to which line the change would bring +.Ar file1 +in line with +.Ar file1 . +.It Li XX,YY Ns Ic d Ns Li ZZ +Delete the range of lines +.Va XX +through +.Va YY +in +.Ar file1 . +.It Li XX Ns Ic c Ns Li YY +Change the line +.Va XX +in +.Ar file1 +to the line +.Va YY +in +.Ar file2 . +.It Li XX,YY Ns Ic c Ns Li ZZ +Replace the range of specified lines with the line +.Va ZZ . +.It Li XX,YY Ns Ic c Ns Li ZZ,QQ +Replace the range +.Va XX , Ns Va YY +from +.Ar file1 +with the range +.Va ZZ , Ns Va QQ +from +.Ar file2 . +.El +.Pp +These lines resemble +.Xr ed 1 +subcommands to convert +.Ar file1 +into +.Ar file2 . +The line numbers before the action letters pertain to +.Ar file1 ; +those after pertain to +.Ar file2 . +Thus, by exchanging +.Ic a +for +.Ic d +and reading the line in reverse order, one can also +determine how to convert +.Ar file2 +into +.Ar file1 . +As in +.Xr ed 1 , +identical +pairs (where num1 = num2) are abbreviated as a single +number. +.Sh ENVIRONMENT +.Bl -tag -width TMPDIR +.It Ev TMPDIR +If the environment variable +.Ev TMPDIR +exists, +.Nm +will use the directory specified by +.Ev TMPDIR +as the temporary directory. +.El +.Sh FILES +.Bl -tag -width /tmp/diff.XXXXXXXX -compact +.It Pa /tmp/diff. Ns Ar XXXXXXXX +Temporary file used when comparing a device or the standard input. +Note that the temporary file is unlinked as soon as it is created +so it will not show up in a directory listing. +.El +.Sh DIAGNOSTICS +The +.Nm +utility exits with one of the following values: +.Pp +.Bl -tag -width Ds -compact -offset indent +.It 0 +No differences were found. +.It 1 +Differences were found. +.It \*(Gt1 +An error occurred. +.El +.Sh SEE ALSO +.Xr cmp 1 , +.Xr comm 1 , +.Xr diff3 1 , +.Xr ed 1 , +.Xr pr 1 , +.Xr sdiff 1 , +.Xr fnmatch 3 , +.Xr re_format 7 +.Sh STANDARDS +The +.Nm +utility is compliant with the +St -p1003.1-2004 +specification. +.Pp +The flags +.Op Fl aDdIiLlNnPpqSsTtUuwXx +are extensions to that specification. +.Sh HISTORY +A +.Nm +command appeared in +.At v6 . +.Sh BUGS +When comparing directories with the +.Fl b , +.Fl w +or +.Fl i +options specified, +.Nm +first compares the files ala +.Xr cmp 1 , +and then decides to run the +.Nm +algorithm if they are not equal. +This may cause a small amount of spurious output if the files +then turn out to be identical because the only differences are +insignificant whitespace or case differences. Added: soc2012/jhagewood/diff/diff-orig/diff.1.gz ============================================================================== Binary file. No diff available. Added: soc2012/jhagewood/diff/diff-orig/diff.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/diff/diff-orig/diff.c Sun Jun 10 03:29:40 2012 (r237393) @@ -0,0 +1,599 @@ +/*- + * Copyright (c) 2003 Todd C. Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Sponsored in part by the Defense Advanced Research Projects + * Agency (DARPA) and Air Force Research Laboratory, Air Force + * Materiel Command, USAF, under agreement number F39502-99-1-0512. + */ + +#include + +#ifndef lint +#if 0 +__RCSID("$OpenBSD: diff.c,v 1.50 2007/05/29 18:24:56 ray Exp $"); +#else +__FBSDID("$FreeBSD$"); +#endif +#endif /* not lint */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "diff.h" +#include "pathnames.h" + +int aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag; +int sflag, tflag, Tflag, wflag; +int Bflag, yflag; +int strip_cr, tabsize=8; +char ignore_file_case = 0; +int format, context, status; +char *start, *ifdefname, *diffargs, *label[2], *ignore_pats; +struct stat stb1, stb2; +struct excludes *excludes_list; +regex_t ignore_re; + +int flag_opts = 0; + +#define OPTIONS "0123456789aBbC:cdD:efhI:iL:lnNPpqrS:sTtU:uvwXy:x" + + +/* Options which exceed manageable alphanumeric assignments */ +enum +{ + OPT_IGN_FN_CASE = CHAR_MAX + 1, + OPT_NIGN_FN_CASE, + OPT_STRIPCR, + OPT_NORMAL, + OPT_LEFTC, + OT_SUPCL, + OPT_GTYPE, + OPT_LF, + OPT_LLF, + OPT_TSIZE, + OPT_UNINF, + OPT_FFILE, + OPT_TOFILE, + OPT_HLINES, + OPT_LFILES, + OPT_HELP, +}; + + +static struct option longopts[] = { +/* XXX: UNIMPLEMENTED + { "normal", no_argument, NULL, OPT_NORMAL }, + { "left-column", no_argument, NULL, OPT_LEFTC }, + { "suppress-common-lines", no_argument, NULL, OT_SUPCL }, + { "GTYPE-group-format", required_argument, NULL, OPT_GTYPE }, + { "line-format", required_argument, NULL, OPT_LF }, + { "LTYPE-line-format", required_argument, NULL, OPT_LLF }, + { "unidirectional-new-file", no_argument, NULL, OPT_UNINF }, + { "from-file", required_argument, NULL, OPT_FFILE }, + { "to-file", required_argument, NULL, OPT_TOFILE }, + { "horizon-lines", required_argument, NULL, OPT_HLINES }, + { "speed-large-files", no_argument, NULL, OPT_LFILES }, */ + { "tabsize", optional_argument, NULL, OPT_TSIZE }, + { "strip-trailing-cr", no_argument, NULL, OPT_STRIPCR }, + { "help", no_argument, NULL, OPT_HELP }, + { "ignore-file-name-case", no_argument, NULL, OPT_IGN_FN_CASE }, + { "no-ignore-file-name-case", no_argument, NULL, OPT_NIGN_FN_CASE }, + { "text", no_argument, NULL, 'a' }, +/* XXX: UNIMPLEMENTED */ + { "ignore-blank-lines", no_argument, NULL, 'B' }, + { "ignore-space-change", no_argument, NULL, 'b' }, +/* XXX: -c is incompatible with GNU version */ + { "context", optional_argument, NULL, 'C' }, + { "ifdef", required_argument, NULL, 'D' }, + { "minimal", no_argument, NULL, 'd' }, +/* XXX: UNIMPLEMENTED + { "ignore-tab-expansion", no_argument, NULL, 'E' }, */ + { "ed", no_argument, NULL, 'e' }, +/* XXX: UNIMPLEMENTED + { "show-function-line", required_argument, NULL, 'F' }, */ + { "forward-ed", no_argument, NULL, 'f' }, + { "ignore-matching-lines", required_argument, NULL, 'I' }, + { "ignore-case", no_argument, NULL, 'i' }, + { "label", required_argument, NULL, 'L' }, + { "paginate", no_argument, NULL, 'l' }, + { "new-file", no_argument, NULL, 'N' }, + { "rcs", no_argument, NULL, 'n' }, + { "unidirectional-new-file", no_argument, NULL, 'P' }, + { "show-c-function", no_argument, NULL, 'p' }, + { "brief", no_argument, NULL, 'q' }, + { "recursive", no_argument, NULL, 'r' }, + { "starting-file", required_argument, NULL, 'S' }, + { "report-identical-files", no_argument, NULL, 's' }, + { "initial-tab", no_argument, NULL, 'T' }, + { "expand-tabs", no_argument, NULL, 't' }, +/* XXX: -u is incompatible with GNU version */ + { "unified", optional_argument, NULL, 'U' }, + { "version", no_argument, NULL, 'v' }, +/* XXX: UNIMPLEMENTED + { "width", optional_argument, NULL, 'W' }, */ + { "ignore-all-space", no_argument, NULL, 'w' }, + { "exclude-from", required_argument, NULL, 'X' }, + { "exclude", required_argument, NULL, 'x' }, + { "side-by-side", no_argument, NULL, 'y' }, + { NULL, 0, NULL, '\0'} +}; + +static const char *help_msg[] = { +"-a --text treat files as ASCII text", +"-B --ignore-blank-lines Ignore blank newlines in the comparison", +"-b --ignore-space-change Ignore all changes due to whitespace", +"-C NUM --context=[NUM] Show NUM lines before and after change (default 3)", +"-D --ifdef=NAME", +NULL, +}; +char **help_strs = (char **)help_msg; + +void set_argstr(char **, char **); + + +void usage(void); +void push_excludes(char *); +void push_ignore_pats(char *); +void read_excludes_file(char *); + +int +main(int argc, char **argv) +{ + char *ep, **oargv; + long l; + int ch, lastch, gotstdin, prevoptind, newarg; + int oargc; + + oargv = argv; + oargc = argc; + gotstdin = 0; + + lastch = '\0'; + prevoptind = 1; + newarg = 1; + while ((ch = getopt_long(argc, argv, OPTIONS, longopts, NULL)) != -1) { + switch (ch) { + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + if (newarg) + usage(); /* disallow -[0-9]+ */ + else if (lastch == 'c' || lastch == 'u') + context = 0; + else if (!isdigit(lastch) || context > INT_MAX / 10) + usage(); + context = (context * 10) + (ch - '0'); + break; + case 'a': + aflag = 1; + break; + case 'b': + bflag = 1; + break; + case 'B': + Bflag = 1; + break; + case 'C': + case 'c': + format = D_CONTEXT; + if (optarg != NULL) { + l = strtol(optarg, &ep, 10); + if (*ep != '\0' || l < 0 || l >= INT_MAX) + usage(); + context = (int)l; + } else + context = 3; + break; + case 'D': + format = D_IFDEF; + ifdefname = optarg; + break; + case 'd': + dflag = 1; + break; + case 'e': + format = D_EDIT; + break; + case 'f': + format = D_REVERSE; + break; + case 'h': + /* silently ignore for backwards compatibility */ + break; + case 'I': + push_ignore_pats(optarg); + break; + case 'i': + iflag = 1; + break; + case 'L': + if (label[0] == NULL) + label[0] = optarg; + else if (label[1] == NULL) + label[1] = optarg; + else + usage(); + break; + case 'l': + lflag = 1; + signal(SIGPIPE, SIG_IGN); + break; + case 'N': + Nflag = 1; + break; + case 'n': + format = D_NREVERSE; + break; + case 'P': + Pflag = 1; + break; + case 'p': + pflag = 1; + break; + case 'r': + rflag = 1; + break; + case 'q': + format = D_BRIEF; + break; + case 'S': + start = optarg; + break; + case 's': + sflag = 1; + break; + case 'T': + Tflag = 1; + break; + case 't': + tflag = 1; + break; + case 'U': + case 'u': + format = D_UNIFIED; + if (optarg != NULL) { + l = strtol(optarg, &ep, 10); + if (*ep != '\0' || l < 0 || l >= INT_MAX) + usage(); + context = (int)l; + } else + context = 3; + break; + case 'v': + printf("FreeBSD diff 2.8.7\n"); + exit(0); + case 'w': + wflag = 1; + break; + case 'X': + read_excludes_file(optarg); + break; + case 'x': + push_excludes(optarg); + break; + case 'y': + yflag = 1; + break; + case OPT_TSIZE: + if (optarg != NULL) { + l = strtol(optarg, &ep, 10); + if (*ep != '\0' || l < 1 || l >= INT_MAX) + usage(); + tabsize = (int)l; + } else + tabsize = 8; + break; + case OPT_STRIPCR: + strip_cr=1; + break; + case OPT_IGN_FN_CASE: + ignore_file_case = 1; + break; + case OPT_NIGN_FN_CASE: + ignore_file_case = 0; + break; + case OPT_HELP: + for(;*help_strs;help_strs++) + { + printf("%s\n", *help_strs); + } + exit(2); + break; + default: + usage(); + break; + } + lastch = ch; + newarg = optind != prevoptind; + prevoptind = optind; + } + argc -= optind; + argv += optind; + + if(yflag) { + /* remove y flag from args and call sdiff */ + for(argv=oargv; argv && strcmp(*argv, "-y") != 0; argv++); + while(argv != &oargv[oargc]){ + *argv=*(argv+1); + argv++; + } + oargv[0] = _PATH_SDIFF; + *argv= "\0"; + + execv(_PATH_SDIFF, oargv); + _exit(127); + } + + /* + * Do sanity checks, fill in stb1 and stb2 and call the appropriate + * driver routine. Both drivers use the contents of stb1 and stb2. + */ + if (argc != 2) + usage(); + if (ignore_pats != NULL) { + char buf[BUFSIZ]; + int error; + + if ((error = regcomp(&ignore_re, ignore_pats, + REG_NEWLINE | REG_EXTENDED)) != 0) { + regerror(error, &ignore_re, buf, sizeof(buf)); + if (*ignore_pats != '\0') + errx(2, "%s: %s", ignore_pats, buf); + else + errx(2, "%s", buf); + } + } + if (strcmp(argv[0], "-") == 0) { + fstat(STDIN_FILENO, &stb1); + gotstdin = 1; + } else if (stat(argv[0], &stb1) != 0) + err(2, "%s", argv[0]); + if (strcmp(argv[1], "-") == 0) { + fstat(STDIN_FILENO, &stb2); + gotstdin = 1; + } else if (stat(argv[1], &stb2) != 0) + err(2, "%s", argv[1]); + if (gotstdin && (S_ISDIR(stb1.st_mode) || S_ISDIR(stb2.st_mode))) + errx(2, "can't compare - to a directory"); + set_argstr(oargv, argv); + if (S_ISDIR(stb1.st_mode) && S_ISDIR(stb2.st_mode)) { + if (format == D_IFDEF) + errx(2, "-D option not supported with directories"); + diffdir(argv[0], argv[1]); + } else { + if (S_ISDIR(stb1.st_mode)) { + argv[0] = splice(argv[0], argv[1]); + if (stat(argv[0], &stb1) < 0) + err(2, "%s", argv[0]); + } + if (S_ISDIR(stb2.st_mode)) { + argv[1] = splice(argv[1], argv[0]); + if (stat(argv[1], &stb2) < 0) + err(2, "%s", argv[1]); + } + print_status(diffreg(argv[0], argv[1], 0), argv[0], argv[1], + NULL); + } + exit(status); +} + +void * +emalloc(size_t n) +{ + void *p; + + if (n == 0) + errx(2, NULL); + + if ((p = malloc(n)) == NULL) + errx(2, NULL); + return (p); +} + +void * +erealloc(void *p, size_t n) +{ + void *q; + + if (n == 0) + errx(2, NULL); + if (p == NULL) + q = malloc(n); + else + q = realloc(p, n); + if (q == NULL) + errx(2, NULL); + return (q); +} + +int +easprintf(char **ret, const char *fmt, ...) +{ + int len; + va_list ap; + + va_start(ap, fmt); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-soc-all@FreeBSD.ORG Sun Jun 10 03:33:49 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 6131A1065670 for ; Sun, 10 Jun 2012 03:33:47 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Sun, 10 Jun 2012 03:33:47 +0000 Date: Sun, 10 Jun 2012 03:33:47 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120610033347.6131A1065670@hub.freebsd.org> Cc: Subject: socsvn commit: r237394 - in soc2012/jhagewood: diff diff3 mdocml X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 03:33:49 -0000 Author: jhagewood Date: Sun Jun 10 03:33:47 2012 New Revision: 237394 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237394 Log: Modified: soc2012/jhagewood/diff/hagewood-diff.patch soc2012/jhagewood/diff3/hagewood-diff3.patch soc2012/jhagewood/mdocml/hagewood-mdocml-ti.patch Modified: soc2012/jhagewood/diff/hagewood-diff.patch ============================================================================== --- soc2012/jhagewood/diff/hagewood-diff.patch Sun Jun 10 03:29:40 2012 (r237393) +++ soc2012/jhagewood/diff/hagewood-diff.patch Sun Jun 10 03:33:47 2012 (r237394) @@ -0,0 +1,31 @@ +diff -rupN jhagewood/diff/diff-orig/diffreg.c jhagewood/diff/diff/diffreg.c +--- jhagewood/diff/diff-orig/diffreg.c 2012-06-10 03:31:05.000000000 -0400 ++++ jhagewood/diff/diff/diffreg.c 2012-06-10 03:31:05.000000000 -0400 +@@ -1551,16 +1551,23 @@ dump_unified_vec(FILE *f1, FILE *f2) + static void + print_header(const char *file1, const char *file2) + { ++ struct tm *tm_ptr1, *tm_ptr2; ++ char buf1[256]; ++ char buf2[256]; ++ tm_ptr1 = localtime(&stb1.st_mtime); ++ tm_ptr2 = localtime(&stb2.st_mtime); ++ strftime(buf1, 256, "%Y-%m-%d %H:%M:%S %z", tm_ptr1); ++ strftime(buf2, 256, "%Y-%m-%d %H:%M:%S %z", tm_ptr2); + if (label[0] != NULL) + printf("%s %s\n", format == D_CONTEXT ? "***" : "---", + label[0]); + else +- printf("%s %s\t%s", format == D_CONTEXT ? "***" : "---", +- file1, ctime(&stb1.st_mtime)); ++ printf("%s %s\t%s\n", format == D_CONTEXT ? "***" : "---", ++ file1, buf1); + if (label[1] != NULL) + printf("%s %s\n", format == D_CONTEXT ? "---" : "+++", + label[1]); + else +- printf("%s %s\t%s", format == D_CONTEXT ? "---" : "+++", +- file2, ctime(&stb2.st_mtime)); ++ printf("%s %s\t%s\n", format == D_CONTEXT ? "---" : "+++", ++ file2, buf2); + } Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Sun Jun 10 03:29:40 2012 (r237393) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Sun Jun 10 03:33:47 2012 (r237394) @@ -1,6 +1,6 @@ diff -rupN jhagewood/diff3/diff3-orig/Makefile jhagewood/diff3/diff3/Makefile ---- jhagewood/diff3/diff3-orig/Makefile 2012-06-07 05:12:54.000000000 -0400 -+++ jhagewood/diff3/diff3/Makefile 2012-06-07 05:12:54.000000000 -0400 +--- jhagewood/diff3/diff3-orig/Makefile 2012-06-10 03:31:05.000000000 -0400 ++++ jhagewood/diff3/diff3/Makefile 2012-06-10 03:31:05.000000000 -0400 @@ -6,6 +6,6 @@ BINDIR= /usr/libexec beforeinstall: @@ -10,8 +10,8 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c ---- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-07 05:12:54.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-09 05:08:37.000000000 -0400 +--- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-10 03:31:05.000000000 -0400 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-10 03:31:05.000000000 -0400 @@ -64,24 +64,34 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ Modified: soc2012/jhagewood/mdocml/hagewood-mdocml-ti.patch ============================================================================== --- soc2012/jhagewood/mdocml/hagewood-mdocml-ti.patch Sun Jun 10 03:29:40 2012 (r237393) +++ soc2012/jhagewood/mdocml/hagewood-mdocml-ti.patch Sun Jun 10 03:33:47 2012 (r237394) @@ -1,6 +1,6 @@ diff -rupN jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.c jhagewood/mdocml/mdocml-1.12.1/mdoc.c ---- jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.c 2012-06-07 05:12:55.000000000 -0400 -+++ jhagewood/mdocml/mdocml-1.12.1/mdoc.c 2012-06-07 05:12:56.000000000 -0400 +--- jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.c 2012-06-10 03:31:06.000000000 -0400 ++++ jhagewood/mdocml/mdocml-1.12.1/mdoc.c 2012-06-10 03:31:06.000000000 -0400 @@ -70,7 +70,7 @@ const char *const __mdoc_macronames[MDOC /* LINTED */ "Dx", "%Q", "br", "sp", @@ -11,8 +11,8 @@ const char *const __mdoc_argnames[MDOC_ARG_MAX] = { diff -rupN jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.h jhagewood/mdocml/mdocml-1.12.1/mdoc.h ---- jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.h 2012-06-07 05:12:55.000000000 -0400 -+++ jhagewood/mdocml/mdocml-1.12.1/mdoc.h 2012-06-07 05:12:56.000000000 -0400 +--- jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.h 2012-06-10 03:31:06.000000000 -0400 ++++ jhagewood/mdocml/mdocml-1.12.1/mdoc.h 2012-06-10 03:31:06.000000000 -0400 @@ -136,6 +136,7 @@ enum mdoct { MDOC_En, MDOC_Dx, @@ -22,8 +22,8 @@ MDOC_sp, MDOC__U, diff -rupN jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_argv.c jhagewood/mdocml/mdocml-1.12.1/mdoc_argv.c ---- jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_argv.c 2012-06-07 05:12:55.000000000 -0400 -+++ jhagewood/mdocml/mdocml-1.12.1/mdoc_argv.c 2012-06-07 05:12:56.000000000 -0400 +--- jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_argv.c 2012-06-10 03:31:06.000000000 -0400 ++++ jhagewood/mdocml/mdocml-1.12.1/mdoc_argv.c 2012-06-10 03:31:06.000000000 -0400 @@ -264,6 +264,7 @@ static const struct mdocarg mdocargs[MDO { ARGSFL_NONE, NULL }, /* En */ { ARGSFL_NONE, NULL }, /* Dx */ @@ -33,8 +33,8 @@ { ARGSFL_NONE, NULL }, /* sp */ { ARGSFL_NONE, NULL }, /* %U */ diff -rupN jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_macro.c jhagewood/mdocml/mdocml-1.12.1/mdoc_macro.c ---- jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_macro.c 2012-06-07 05:12:55.000000000 -0400 -+++ jhagewood/mdocml/mdocml-1.12.1/mdoc_macro.c 2012-06-07 05:12:56.000000000 -0400 +--- jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_macro.c 2012-06-10 03:31:06.000000000 -0400 ++++ jhagewood/mdocml/mdocml-1.12.1/mdoc_macro.c 2012-06-10 03:31:06.000000000 -0400 @@ -188,6 +188,7 @@ const struct mdoc_macro __mdoc_macros[MD { obsolete, 0 }, /* En */ { in_line_argn, MDOC_CALLABLE | MDOC_PARSED }, /* Dx */ @@ -44,8 +44,8 @@ { in_line_eoln, 0 }, /* sp */ { in_line_eoln, 0 }, /* %U */ diff -rupN jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_term.c jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c ---- jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_term.c 2012-06-07 05:12:55.000000000 -0400 -+++ jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c 2012-06-07 05:12:56.000000000 -0400 +--- jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_term.c 2012-06-10 03:31:06.000000000 -0400 ++++ jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c 2012-06-10 03:31:06.000000000 -0400 @@ -115,6 +115,7 @@ static int termp_sh_pre(DECL_ARGS); static int termp_sm_pre(DECL_ARGS); static int termp_sp_pre(DECL_ARGS); From owner-svn-soc-all@FreeBSD.ORG Sun Jun 10 03:35:18 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 9C96E106564A for ; Sun, 10 Jun 2012 03:35:16 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Sun, 10 Jun 2012 03:35:16 +0000 Date: Sun, 10 Jun 2012 03:35:16 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120610033516.9C96E106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237395 - in soc2012/jhagewood/diff: . diff X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 03:35:18 -0000 Author: jhagewood Date: Sun Jun 10 03:35:16 2012 New Revision: 237395 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237395 Log: Modified: soc2012/jhagewood/diff/diff/diff.c soc2012/jhagewood/diff/hagewood-diff.patch Modified: soc2012/jhagewood/diff/diff/diff.c ============================================================================== --- soc2012/jhagewood/diff/diff/diff.c Sun Jun 10 03:33:47 2012 (r237394) +++ soc2012/jhagewood/diff/diff/diff.c Sun Jun 10 03:35:16 2012 (r237395) @@ -129,7 +129,6 @@ { "report-identical-files", no_argument, NULL, 's' }, { "initial-tab", no_argument, NULL, 'T' }, { "expand-tabs", no_argument, NULL, 't' }, -/* XXX: -u is incompatible with GNU version */ { "unified", optional_argument, NULL, 'U' }, { "version", no_argument, NULL, 'v' }, /* XXX: UNIMPLEMENTED Modified: soc2012/jhagewood/diff/hagewood-diff.patch ============================================================================== --- soc2012/jhagewood/diff/hagewood-diff.patch Sun Jun 10 03:33:47 2012 (r237394) +++ soc2012/jhagewood/diff/hagewood-diff.patch Sun Jun 10 03:35:16 2012 (r237395) @@ -1,3 +1,14 @@ +diff -rupN jhagewood/diff/diff-orig/diff.c jhagewood/diff/diff/diff.c +--- jhagewood/diff/diff-orig/diff.c 2012-06-10 03:31:05.000000000 -0400 ++++ jhagewood/diff/diff/diff.c 2012-06-10 03:35:06.000000000 -0400 +@@ -129,7 +129,6 @@ static struct option longopts[] = { + { "report-identical-files", no_argument, NULL, 's' }, + { "initial-tab", no_argument, NULL, 'T' }, + { "expand-tabs", no_argument, NULL, 't' }, +-/* XXX: -u is incompatible with GNU version */ + { "unified", optional_argument, NULL, 'U' }, + { "version", no_argument, NULL, 'v' }, + /* XXX: UNIMPLEMENTED diff -rupN jhagewood/diff/diff-orig/diffreg.c jhagewood/diff/diff/diffreg.c --- jhagewood/diff/diff-orig/diffreg.c 2012-06-10 03:31:05.000000000 -0400 +++ jhagewood/diff/diff/diffreg.c 2012-06-10 03:31:05.000000000 -0400 From owner-svn-soc-all@FreeBSD.ORG Sun Jun 10 18:34:07 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id D561C106564A for ; Sun, 10 Jun 2012 18:34:06 +0000 (UTC) (envelope-from tzabal@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Sun, 10 Jun 2012 18:34:06 +0000 Date: Sun, 10 Jun 2012 18:34:06 +0000 From: tzabal@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120610183406.D561C106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237421 - soc2012/tzabal/server-side/akcrs-release-9.0.0 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 18:34:08 -0000 Author: tzabal Date: Sun Jun 10 18:34:06 2012 New Revision: 237421 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237421 Log: Create the directory server-side/akcrs-release-9.0.0. Added: soc2012/tzabal/server-side/akcrs-release-9.0.0/ From owner-svn-soc-all@FreeBSD.ORG Sun Jun 10 18:36:37 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 00454106564A for ; Sun, 10 Jun 2012 18:36:35 +0000 (UTC) (envelope-from tzabal@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Sun, 10 Jun 2012 18:36:35 +0000 Date: Sun, 10 Jun 2012 18:36:35 +0000 From: tzabal@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120610183636.00454106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237422 - soc2012/tzabal/server-side/akcrs-release-9.0.0/9.0.0 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 18:36:37 -0000 Author: tzabal Date: Sun Jun 10 18:36:35 2012 New Revision: 237422 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237422 Log: Branching /base/release/9.0.0 for the Server-side part Added: soc2012/tzabal/server-side/akcrs-release-9.0.0/9.0.0/ (props changed) - copied from r237421, mirror/FreeBSD/release/9.0.0/ From owner-svn-soc-all@FreeBSD.ORG Sun Jun 10 18:40:04 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 1FAB9106564A for ; Sun, 10 Jun 2012 18:40:03 +0000 (UTC) (envelope-from tzabal@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Sun, 10 Jun 2012 18:40:03 +0000 Date: Sun, 10 Jun 2012 18:40:03 +0000 From: tzabal@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120610184003.1FAB9106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237423 - in soc2012/tzabal/server-side: akcrs-release akcrs-release-9.0.0 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 18:40:04 -0000 Author: tzabal Date: Sun Jun 10 18:40:02 2012 New Revision: 237423 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237423 Log: Rename the directory akcrs-release-9.0.0 to akcrs-release Added: soc2012/tzabal/server-side/akcrs-release/ - copied from r237422, soc2012/tzabal/server-side/akcrs-release-9.0.0/ Deleted: soc2012/tzabal/server-side/akcrs-release-9.0.0/ From owner-svn-soc-all@FreeBSD.ORG Sun Jun 10 20:26:33 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 333EF106566C for ; Sun, 10 Jun 2012 20:26:31 +0000 (UTC) (envelope-from tzabal@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Sun, 10 Jun 2012 20:26:31 +0000 Date: Sun, 10 Jun 2012 20:26:31 +0000 From: tzabal@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120610202631.333EF106566C@hub.freebsd.org> Cc: Subject: socsvn commit: r237426 - soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 20:26:33 -0000 Author: tzabal Date: Sun Jun 10 20:26:30 2012 New Revision: 237426 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237426 Log: Add the /etc/rc.d/crashreportd rc.d script. Added: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd (contents, props changed) Added: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd ============================================================================== From owner-svn-soc-all@FreeBSD.ORG Sun Jun 10 21:37:11 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 0C95E106566C for ; Sun, 10 Jun 2012 21:37:09 +0000 (UTC) (envelope-from tzabal@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Sun, 10 Jun 2012 21:37:09 +0000 Date: Sun, 10 Jun 2012 21:37:09 +0000 From: tzabal@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120610213709.0C95E106566C@hub.freebsd.org> Cc: Subject: socsvn commit: r237429 - in soc2012/tzabal/server-side/akcrs-release/9.0.0/etc: defaults rc.d X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jun 2012 21:37:11 -0000 Author: tzabal Date: Sun Jun 10 21:37:08 2012 New Revision: 237429 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237429 Log: Add three variables to /etc/defaults/rc.conf for the rc.d script crashreportd Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/defaults/rc.conf soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/defaults/rc.conf ============================================================================== --- soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/defaults/rc.conf Sun Jun 10 20:24:01 2012 (r237428) +++ soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/defaults/rc.conf Sun Jun 10 21:37:08 2012 (r237429) @@ -593,6 +593,9 @@ lpd_program="/usr/sbin/lpd" # path to lpd, if you want a different one. lpd_flags="" # Flags to lpd (if enabled). nscd_enable="NO" # Run the nsswitch caching daemon. +crashreportd_enable="NO" # Run the crashreportd daemon. +crashreportd_program="/usr/sbin/crashreportd" # Path to crashreportd daemon. +crashreportd_flags="" # Additional flags for crahsreportd. chkprintcap_enable="NO" # Run chkprintcap(8) before running lpd. chkprintcap_flags="-d" # Create missing directories by default. dumpdev="NO" # Device to crashdump to (device name, AUTO, or NO). Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd ============================================================================== --- soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd Sun Jun 10 20:24:01 2012 (r237428) +++ soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd Sun Jun 10 21:37:08 2012 (r237429) @@ -0,0 +1,20 @@ +#!/bin/sh + +. /etc/rc.subr + +name="crashreportd" +rcvar="crashreportd_enable" +command="/usr/sbin/${name}" + +# Check if this is correct, taken from sshd rc.d script +pidfile="/var/run/${name}.pid" + +start_cmd="crashreportd_start" + +crashreportd_start() +{ + echo "Inside crashreportd_start()." +} + +load_rc_config $name +run_rc_command $1 \ No newline at end of file From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 00:53:36 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 64FCA106566C for ; Mon, 11 Jun 2012 00:53:34 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 00:53:34 +0000 Date: Mon, 11 Jun 2012 00:53:34 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611005334.64FCA106566C@hub.freebsd.org> Cc: Subject: socsvn commit: r237433 - in soc2012/jhagewood/diff: . diff X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 00:53:36 -0000 Author: jhagewood Date: Mon Jun 11 00:53:33 2012 New Revision: 237433 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237433 Log: Modified: soc2012/jhagewood/diff/diff/diff.c soc2012/jhagewood/diff/diff/diffreg.c soc2012/jhagewood/diff/hagewood-diff.patch Modified: soc2012/jhagewood/diff/diff/diff.c ============================================================================== --- soc2012/jhagewood/diff/diff/diff.c Sun Jun 10 23:48:14 2012 (r237432) +++ soc2012/jhagewood/diff/diff/diff.c Mon Jun 11 00:53:33 2012 (r237433) @@ -547,7 +547,7 @@ path1, entry ? entry : "", path2, entry ? entry : ""); break; case D_BINARY: - printf("Binary files %s%s and %s%s differ\n", + printf("Files %s%s and %s%s differ\n", path1, entry ? entry : "", path2, entry ? entry : ""); break; case D_DIFFER: Modified: soc2012/jhagewood/diff/diff/diffreg.c ============================================================================== --- soc2012/jhagewood/diff/diff/diffreg.c Sun Jun 10 23:48:14 2012 (r237432) +++ soc2012/jhagewood/diff/diff/diffreg.c Mon Jun 11 00:53:33 2012 (r237433) @@ -1551,13 +1551,19 @@ static void print_header(const char *file1, const char *file2) { + const char *time_format; +#ifdef ST_MTIM_NSEC + time_format = "%Y-%m-%d %H:%M:%S.%N %z"; +#else + time_format = "%Y-%m-%d %H:%M:%S %z"; +#endif struct tm *tm_ptr1, *tm_ptr2; char buf1[256]; char buf2[256]; tm_ptr1 = localtime(&stb1.st_mtime); tm_ptr2 = localtime(&stb2.st_mtime); - strftime(buf1, 256, "%Y-%m-%d %H:%M:%S %z", tm_ptr1); - strftime(buf2, 256, "%Y-%m-%d %H:%M:%S %z", tm_ptr2); + strftime(buf1, 256, time_format, tm_ptr1); + strftime(buf2, 256, time_format, tm_ptr2); if (label[0] != NULL) printf("%s %s\n", format == D_CONTEXT ? "***" : "---", label[0]); Modified: soc2012/jhagewood/diff/hagewood-diff.patch ============================================================================== --- soc2012/jhagewood/diff/hagewood-diff.patch Sun Jun 10 23:48:14 2012 (r237432) +++ soc2012/jhagewood/diff/hagewood-diff.patch Mon Jun 11 00:53:33 2012 (r237433) @@ -1,6 +1,6 @@ diff -rupN jhagewood/diff/diff-orig/diff.c jhagewood/diff/diff/diff.c --- jhagewood/diff/diff-orig/diff.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diff.c 2012-06-10 03:35:06.000000000 -0400 ++++ jhagewood/diff/diff/diff.c 2012-06-11 00:46:52.000000000 -0400 @@ -129,7 +129,6 @@ static struct option longopts[] = { { "report-identical-files", no_argument, NULL, 's' }, { "initial-tab", no_argument, NULL, 'T' }, @@ -9,20 +9,35 @@ { "unified", optional_argument, NULL, 'U' }, { "version", no_argument, NULL, 'v' }, /* XXX: UNIMPLEMENTED +@@ -548,7 +547,7 @@ print_status(int val, char *path1, char + path1, entry ? entry : "", path2, entry ? entry : ""); + break; + case D_BINARY: +- printf("Binary files %s%s and %s%s differ\n", ++ printf("Files %s%s and %s%s differ\n", + path1, entry ? entry : "", path2, entry ? entry : ""); + break; + case D_DIFFER: diff -rupN jhagewood/diff/diff-orig/diffreg.c jhagewood/diff/diff/diffreg.c --- jhagewood/diff/diff-orig/diffreg.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diffreg.c 2012-06-10 03:31:05.000000000 -0400 -@@ -1551,16 +1551,23 @@ dump_unified_vec(FILE *f1, FILE *f2) ++++ jhagewood/diff/diff/diffreg.c 2012-06-11 00:49:41.000000000 -0400 +@@ -1551,16 +1551,29 @@ dump_unified_vec(FILE *f1, FILE *f2) static void print_header(const char *file1, const char *file2) { ++ const char *time_format; ++#ifdef ST_MTIM_NSEC ++ time_format = "%Y-%m-%d %H:%M:%S.%N %z"; ++#else ++ time_format = "%Y-%m-%d %H:%M:%S %z"; ++#endif + struct tm *tm_ptr1, *tm_ptr2; + char buf1[256]; + char buf2[256]; + tm_ptr1 = localtime(&stb1.st_mtime); + tm_ptr2 = localtime(&stb2.st_mtime); -+ strftime(buf1, 256, "%Y-%m-%d %H:%M:%S %z", tm_ptr1); -+ strftime(buf2, 256, "%Y-%m-%d %H:%M:%S %z", tm_ptr2); ++ strftime(buf1, 256, time_format, tm_ptr1); ++ strftime(buf2, 256, time_format, tm_ptr2); if (label[0] != NULL) printf("%s %s\n", format == D_CONTEXT ? "***" : "---", label[0]); From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 11:13:45 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 6C87B106566B for ; Mon, 11 Jun 2012 11:13:44 +0000 (UTC) (envelope-from vbotton@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 11:13:44 +0000 Date: Mon, 11 Jun 2012 11:13:44 +0000 From: vbotton@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611111344.6C87B106566B@hub.freebsd.org> Cc: Subject: socsvn commit: r237455 - soc2012/vbotton/head X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 11:13:45 -0000 Author: vbotton Date: Mon Jun 11 11:13:43 2012 New Revision: 237455 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237455 Log: Copy base system Added: soc2012/vbotton/head/ (props changed) - copied from r237454, mirror/FreeBSD/head/ From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 11:20:39 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 379B0106564A for ; Mon, 11 Jun 2012 11:20:38 +0000 (UTC) (envelope-from vbotton@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 11:20:38 +0000 Date: Mon, 11 Jun 2012 11:20:38 +0000 From: vbotton@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611112038.379B0106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237456 - soc2012/vbotton/sys X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 11:20:39 -0000 Author: vbotton Date: Mon Jun 11 11:20:37 2012 New Revision: 237456 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237456 Log: Copy only sys dir Added: soc2012/vbotton/sys/ (props changed) - copied from r237455, mirror/FreeBSD/head/sys/ From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 11:41:34 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 4D66F1065672 for ; Mon, 11 Jun 2012 11:41:33 +0000 (UTC) (envelope-from vbotton@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 11:41:33 +0000 Date: Mon, 11 Jun 2012 11:41:33 +0000 From: vbotton@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611114133.4D66F1065672@hub.freebsd.org> Cc: Subject: socsvn commit: r237457 - soc2012/vbotton/head X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 11:41:34 -0000 Author: vbotton Date: Mon Jun 11 11:41:32 2012 New Revision: 237457 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237457 Log: delete wrong branch Deleted: soc2012/vbotton/head/ From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 11:59:53 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 51EE810657E9 for ; Mon, 11 Jun 2012 11:59:51 +0000 (UTC) (envelope-from gmiller@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 11:59:51 +0000 Date: Mon, 11 Jun 2012 11:59:51 +0000 From: gmiller@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611115951.51EE810657E9@hub.freebsd.org> Cc: Subject: socsvn commit: r237458 - in soc2012/gmiller/locking-head: include lib/libthr/thread X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 11:59:53 -0000 Author: gmiller Date: Mon Jun 11 11:59:50 2012 New Revision: 237458 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237458 Log: Add pthread_getstatistics_*_np() functions and a pthread_statistics_np struct to retrieve profiling stats. Modified: soc2012/gmiller/locking-head/include/pthread_np.h soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Modified: soc2012/gmiller/locking-head/include/pthread_np.h ============================================================================== --- soc2012/gmiller/locking-head/include/pthread_np.h Mon Jun 11 11:41:32 2012 (r237457) +++ soc2012/gmiller/locking-head/include/pthread_np.h Mon Jun 11 11:59:50 2012 (r237458) @@ -68,6 +68,19 @@ int pthread_switch_add_np(pthread_switch_routine_t); int pthread_switch_delete_np(pthread_switch_routine_t); int pthread_timedjoin_np(pthread_t, void **, const struct timespec *); + +#ifdef LOCK_PROFILING + +struct pthread_statistics_np { +}; + +void pthread_getstatistics_begin_np(struct pthread_statistics_np *, + size_t record_size); +void pthread_getstatistics_next_np(struct pthread_statistics_np *); +void pthread_getstatistics_end_np(struct pthread_statistics_np *); + +#endif + __END_DECLS #endif Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Mon Jun 11 11:41:32 2012 (r237457) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Mon Jun 11 11:59:50 2012 (r237458) @@ -31,6 +31,7 @@ #include #include #include +#include #include "thr_private.h" @@ -274,4 +275,20 @@ { } -#endif +void +pthread_getstatistics_begin_np(struct pthread_statistics_np *stats, + size_t record_size) +{ +} + +void +pthread_getstatistics_next_np(struct pthread_statistics_np *stats) +{ +} + +void +pthread_getstatistics_end_np(struct pthread_statistics_np *stats) +{ +} + +#endif /* LOCK_PROFILING */ From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 12:06:42 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 9EE8F106564A for ; Mon, 11 Jun 2012 12:06:41 +0000 (UTC) (envelope-from vbotton@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 12:06:41 +0000 Date: Mon, 11 Jun 2012 12:06:41 +0000 From: vbotton@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611120641.9EE8F106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237461 - soc2012/vbotton/head X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 12:06:42 -0000 Author: vbotton Date: Mon Jun 11 12:06:41 2012 New Revision: 237461 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237461 Log: fecth again the base src, made a mistake by fecthing only /sys Added: soc2012/vbotton/head/ (props changed) - copied from r237460, mirror/FreeBSD/head/ From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 12:27:25 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id D1D051065670 for ; Mon, 11 Jun 2012 12:27:22 +0000 (UTC) (envelope-from tzabal@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 12:27:22 +0000 Date: Mon, 11 Jun 2012 12:27:22 +0000 From: tzabal@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611122722.D1D051065670@hub.freebsd.org> Cc: Subject: socsvn commit: r237462 - in soc2012/tzabal/server-side/akcrs-release/9.0.0: etc/rc.d usr.sbin usr.sbin/crashreportd X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 12:27:25 -0000 Author: tzabal Date: Mon Jun 11 12:27:21 2012 New Revision: 237462 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237462 Log: * Updated version of /etc/rc.d/crashreportd * Modify /etc/rc.d/Makefile to include the crashreportd script * Add the directory /usr.sbin/crashreportd with crashreportd.sh and Makefile inside * Modify the /usr.sbin/Makefile to include the /usr.sbin/crashreportd directory. Added: soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/ soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/Makefile soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/crashreportd.sh (contents, props changed) Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/Makefile soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/Makefile Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/Makefile ============================================================================== --- soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/Makefile Mon Jun 11 12:06:41 2012 (r237461) +++ soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/Makefile Mon Jun 11 12:27:21 2012 (r237462) @@ -6,7 +6,7 @@ abi accounting addswap adjkerntz amd \ apm apmd archdep atm1 atm2 atm3 auditd \ bgfsck bluetooth bootparams bridge bsnmpd bthidd \ - ccd cleanvar cleartmp cron \ + ccd cleanvar cleartmp crashreportd cron \ ddb defaultroute devd devfs dhclient \ dmesg dumpon \ encswap \ Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd ============================================================================== --- soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd Mon Jun 11 12:06:41 2012 (r237461) +++ soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd Mon Jun 11 12:27:21 2012 (r237462) @@ -1,20 +1,16 @@ #!/bin/sh +# PROVIDE: crashreportd +# REQUIRE: LOGIN cleanvar +# KEYWORD: nojail shutdown + . /etc/rc.subr name="crashreportd" rcvar="crashreportd_enable" command="/usr/sbin/${name}" - # Check if this is correct, taken from sshd rc.d script pidfile="/var/run/${name}.pid" -start_cmd="crashreportd_start" - -crashreportd_start() -{ - echo "Inside crashreportd_start()." -} - load_rc_config $name -run_rc_command $1 \ No newline at end of file +run_rc_command "$1" Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/Makefile ============================================================================== --- soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/Makefile Mon Jun 11 12:06:41 2012 (r237461) +++ soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/Makefile Mon Jun 11 12:27:21 2012 (r237462) @@ -15,6 +15,7 @@ ckdist \ clear_locks \ crashinfo \ + crashreportd \ cron \ daemon \ dconschat \ Added: soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/Makefile Mon Jun 11 12:27:21 2012 (r237462) @@ -0,0 +1,3 @@ +SCRIPTS= crashreportd.sh + +.include Added: soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/crashreportd.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/crashreportd.sh Mon Jun 11 12:27:21 2012 (r237462) @@ -0,0 +1,3 @@ +#!/bin/sh + +echo 'Inside /usr/sbin/crashreportd.' From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 13:22:48 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 0CCB6106564A for ; Mon, 11 Jun 2012 13:22:46 +0000 (UTC) (envelope-from aleek@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 13:22:46 +0000 Date: Mon, 11 Jun 2012 13:22:46 +0000 From: aleek@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611132246.0CCB6106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237465 - in soc2012/aleek/beaglexm-armv6/sys: arm/arm arm/conf arm/ti arm/ti/am37x boot/fdt/dts X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 13:22:48 -0000 Author: aleek Date: Mon Jun 11 13:22:45 2012 New Revision: 237465 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237465 Log: minor changes to initarm() to make kernel boots the entire initarm() Modified: soc2012/aleek/beaglexm-armv6/sys/arm/arm/cpufunc_asm_armv7.S soc2012/aleek/beaglexm-armv6/sys/arm/arm/locore.S soc2012/aleek/beaglexm-armv6/sys/arm/conf/BEAGLEBOARD-XM soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_early_uart.c soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_cpuid.c soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_machdep.c soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts Modified: soc2012/aleek/beaglexm-armv6/sys/arm/arm/cpufunc_asm_armv7.S ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/arm/cpufunc_asm_armv7.S Mon Jun 11 12:34:14 2012 (r237464) +++ soc2012/aleek/beaglexm-armv6/sys/arm/arm/cpufunc_asm_armv7.S Mon Jun 11 13:22:45 2012 (r237465) @@ -1,5 +1,8 @@ /*- - * Copyright (c) 2010 Per Odlund + * Copyright (C) 2011 MARVELL INTERNATIONAL LTD. + * All rights reserved. + * + * Developed by Semihalf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -9,54 +12,67 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. + * 3. Neither the name of MARVELL nor the names of contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -/* ARMv7 assembly functions for manipulating caches and other core functions. - * Based on cpufuncs for v6 and xscale. + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ - #include +__FBSDID("$FreeBSD$"); -#define entrysize #32 - -ENTRY(armv7_cpu_sleep) - tst r0, #0x00000000 /* shouldn't sleep 0 */ - RET - - -ENTRY(armv7_wait) - mrc p15, 0, r0, c2, c0, 0 /* arbitrary read of CP15 */ - add r0, r0, #0 /* a stall */ +.Lcoherency_level: + .word _C_LABEL(arm_cache_loc) +.Lcache_type: + .word _C_LABEL(arm_cache_type) +.Lway_mask: + .word 0x3ff +.Lmax_index: + .word 0x7fff +.Lpage_mask: + .word 0xfff + +#define PT_NOS (1 << 5) +#define PT_S (1 << 1) +#define PT_INNER_NC 0 +#define PT_INNER_WT (1 << 0) +#define PT_INNER_WB ((1 << 0) | (1 << 6)) +#define PT_INNER_WBWA (1 << 6) +#define PT_OUTER_NC 0 +#define PT_OUTER_WT (2 << 3) +#define PT_OUTER_WB (3 << 3) +#define PT_OUTER_WBWA (1 << 3) + +#ifdef SMP +#define PT_ATTR (PT_S|PT_INNER_WT|PT_OUTER_WT|PT_NOS) +#else +#define PT_ATTR (PT_INNER_WT|PT_OUTER_WT) +#endif + +ENTRY(armv7_setttb2) + stmdb sp!, {r0, lr} + bl _C_LABEL(armv7_idcache_wbinv_all) /* clean the D cache */ + ldmia sp!, {r0, lr} + dsb + + orr r0, r0, #PT_ATTR + mcr p15, 0, r0, c2, c0, 0 /* Translation Table Base Register 0 (TTBR0) */ + mcr p15, 0, r0, c8, c7, 0 /* invalidate I+D TLBs */ + dsb + isb RET - -ENTRY(armv7_context_switch) - mcr p15, 0, r0, c7, c10, 4 /* drain the write buffer */ - mcr p15, 0, r0, c2, c0, 0 /* set the new TTB */ - mcr p15, 0, r0, c8, c7, 0 /* flush the I+D */ - RET - - -ENTRY(armv7_tlb_flushID_SE) - mcr p15, 0, r0, c8, c7, 1 /* flush I+D tlb single entry */ - mcr p15, 0, r0, c7, c10, 4 /* drain write buffer */ - RET - - - ENTRY(armv7_setttb) stmdb sp!, {r0, lr} bl _C_LABEL(armv7_idcache_wbinv_all) /* clean the D cache */ @@ -68,91 +84,203 @@ RET -/* Cache operations. */ - -/* LINTSTUB: void armv7_icache_sync_range(vaddr_t, vsize_t); */ -ENTRY_NP(armv7_icache_sync_range) -1: - mcr p15, 0, r0, c7, c5, 1 /* invalidate the I-Cache line */ - mcr p15, 0, r0, c7, c10, 1 /* wb the D-Cache line */ - add r0, r0, entrysize - subs r1, r1, entrysize - bhi 1b - - mcr p15, 0, r0, c7, c10, 4 /* drain the write buffer, BSB */ - RET - +ENTRY(armv7_tlb_flushID) + dsb +#ifdef SMP + mcr p15, 0, r0, c8, c3, 0 +#else + mcr p15, 0, r0, c8, c7, 0 /* flush I+D tlb */ +#endif + mcr p15, 0, r0, c7, c5, 6 /* flush BTB */ + dsb + isb + mov pc, lr -/* LINTSTUB: void armv7_icache_sync_all(void); */ -ENTRY_NP(armv7_icache_sync_all) - /* - * We assume that the code here can never be out of sync with the - * dcache, so that we can safely flush the Icache and fall through - * into the Dcache cleaning code. - */ - stmdb sp!, {r0, lr} - bl _C_LABEL(armv7_idcache_wbinv_all) /* clean the D cache */ - ldmia sp!, {r0, lr} - mcr p15, 0, r0, c7, c10, 4 /* drain the write buffer, BSB */ +ENTRY(armv7_tlb_flushID_SE) + ldr r1, .Lpage_mask + bic r0, r0, r1 +#ifdef SMP + mcr p15, 0, r0, c8, c3, 1 /* flush D tlb single entry */ +#else + mcr p15, 0, r0, c8, c7, 1 /* flush D tlb single entry */ +#endif + mcr p15, 0, r0, c7, c5, 6 /* flush BTB */ + dsb + isb + mov pc, lr + +/* Based on algorithm from ARM Architecture Reference Manual */ +ENTRY(armv7_dcache_wbinv_all) + stmdb sp!, {r4, r5, r6, r7, r8, r9} + + /* Get cache level */ + ldr r0, .Lcoherency_level + ldr r3, [r0] + cmp r3, #0 + beq Finished + /* For each cache level */ + mov r8, #0 +Loop1: + /* Get cache type for given level */ + mov r2, r8, lsl #2 + add r2, r2, r2 + ldr r0, .Lcache_type + ldr r1, [r0, r2] + + /* Get line size */ + and r2, r1, #7 + add r2, r2, #4 + + /* Get number of ways */ + ldr r4, .Lway_mask + ands r4, r4, r1, lsr #3 + clz r5, r4 + + /* Get max index */ + ldr r7, .Lmax_index + ands r7, r7, r1, lsr #13 +Loop2: + mov r9, r4 +Loop3: + mov r6, r8, lsl #1 + orr r6, r6, r9, lsl r5 + orr r6, r6, r7, lsl r2 + + /* Clean and invalidate data cache by way/index */ + mcr p15, 0, r6, c7, c14, 2 + subs r9, r9, #1 + bge Loop3 + subs r7, r7, #1 + bge Loop2 +Skip: + add r8, r8, #1 + cmp r3, r8 + bne Loop1 +Finished: + dsb + ldmia sp!, {r4, r5, r6, r7, r8, r9} + RET + +ENTRY(armv7_idcache_wbinv_all) + stmdb sp!, {lr} + bl armv7_dcache_wbinv_all + mcr p15, 0, r0, c7, c5, 0 /* Invalidate all I caches to PoU (ICIALLU) */ + dsb + isb + ldmia sp!, {lr} RET +/* XXX Temporary set it to 32 for MV cores, however this value should be + * get from Cache Type register + */ +.Larmv7_line_size: + .word 32 -/* LINTSTUB: armv7_dcache_wb_range(vaddr_t, vsize_t); */ ENTRY(armv7_dcache_wb_range) -1: - mcr p15, 0, r0, c7, c10, 1 /* wb the D-Cache */ - add r0, r0, entrysize - subs r1, r1, entrysize - bhi 1b - mcr p15, 0, r0, c7, c10, 4 /* drain the write buffer, BSB */ + ldr ip, .Larmv7_line_size + sub r3, ip, #1 + and r2, r0, r3 + add r1, r1, r2 + bic r0, r0, r3 +.Larmv7_wb_next: + mcr p15, 0, r0, c7, c10, 1 /* Clean D cache SE with VA */ + add r0, r0, ip + subs r1, r1, ip + bhi .Larmv7_wb_next + dsb /* data synchronization barrier */ RET - -/* LINTSTUB: void armv7_dcache_wbinv_range(vaddr_t, vsize_t); */ ENTRY(armv7_dcache_wbinv_range) -1: - mcr p15, 0, r0, c7, c14, 1 /* wb and inv the D-Cache line */ - add r0, r0, entrysize - subs r1, r1, entrysize - bhi 1b - mcr p15, 0, r0, c7, c10, 4 /* drain the write buffer, BSB */ + ldr ip, .Larmv7_line_size + sub r3, ip, #1 + and r2, r0, r3 + add r1, r1, r2 + bic r0, r0, r3 +.Larmv7_wbinv_next: + mcr p15, 0, r0, c7, c14, 1 /* Purge D cache SE with VA */ + add r0, r0, ip + subs r1, r1, ip + bhi .Larmv7_wbinv_next + dsb /* data synchronization barrier */ RET -/* * LINTSTUB: void armv7_dcache_inv_range(vaddr_t, vsize_t); */ +/* + * Note, we must not invalidate everything. If the range is too big we + * must use wb-inv of the entire cache. + */ ENTRY(armv7_dcache_inv_range) -1: - mcr p15, 0, r0, c7, c6, 1 /* invalidate the D-Cache line */ - add r0, r0, entrysize - subs r1, r1, entrysize - bhi 1b + ldr ip, .Larmv7_line_size + sub r3, ip, #1 + and r2, r0, r3 + add r1, r1, r2 + bic r0, r0, r3 +.Larmv7_inv_next: + mcr p15, 0, r0, c7, c6, 1 /* Invalidate D cache SE with VA */ + add r0, r0, ip + subs r1, r1, ip + bhi .Larmv7_inv_next + dsb /* data synchronization barrier */ + RET - mcr p15, 0, r0, c7, c10, 4 /* drain the write buffer, BSB */ +ENTRY(armv7_idcache_wbinv_range) + ldr ip, .Larmv7_line_size + sub r3, ip, #1 + and r2, r0, r3 + add r1, r1, r2 + bic r0, r0, r3 +.Larmv7_id_wbinv_next: + mcr p15, 0, r0, c7, c5, 1 /* Invalidate I cache SE with VA */ + mcr p15, 0, r0, c7, c14, 1 /* Purge D cache SE with VA */ + add r0, r0, ip + subs r1, r1, ip + bhi .Larmv7_id_wbinv_next + isb /* instruction synchronization barrier */ + dsb /* data synchronization barrier */ RET +ENTRY_NP(armv7_icache_sync_range) + ldr ip, .Larmv7_line_size +.Larmv7_sync_next: + mcr p15, 0, r0, c7, c5, 1 /* Invalidate I cache SE with VA */ + mcr p15, 0, r0, c7, c10, 1 /* Clean D cache SE with VA */ + add r0, r0, ip + subs r1, r1, ip + bhi .Larmv7_sync_next + isb /* instruction synchronization barrier */ + dsb /* data synchronization barrier */ + RET -ENTRY(armv7_idcache_wbinv_range) -1: - mcr p15, 0, r0, c7, c5, 1 /* invalidate the I-Cache line */ - mcr p15, 0, r0, c7, c14, 1 /* wb and inv the D-Cache line */ - add r0, r0, entrysize - subs r1, r1, entrysize - bhi 1b - - mcr p15, 0, r0, c7, c10, 4 /* drain the write buffer, BSB */ +ENTRY(armv7_cpu_sleep) + dsb /* data synchronization barrier */ + wfi /* wait for interrupt */ RET +ENTRY(armv7_context_switch) + dsb + orr r0, r0, #PT_ATTR + + mcr p15, 0, r0, c2, c0, 0 /* set the new TTB */ + mcr p15, 0, r0, c8, c7, 0 /* and flush the I+D tlbs */ + dsb + isb + RET -ENTRY_NP(armv7_idcache_wbinv_all) - /* - * We assume that the code here can never be out of sync with the - * dcache, so that we can safely flush the Icache and fall through - * into the Dcache purging code. - */ - mcr p15, 0, r0, c7, c5, 0 - b _C_LABEL(armv7_dcache_wbinv_all) +ENTRY(armv7_drain_writebuf) + dsb + RET +ENTRY(armv7_sev) + dsb + sev + nop + RET -/* - * armv7_dcache_wbinv_all is in cpufunc.c. It's really too long to - * write in assembler. - */ +ENTRY(armv7_auxctrl) + mrc p15, 0, r2, c1, c0, 1 + bic r3, r2, r0 /* Clear bits */ + eor r3, r3, r1 /* XOR bits */ + + teq r2, r3 + mcrne p15, 0, r3, c1, c0, 1 + mov r0, r2 + RET Modified: soc2012/aleek/beaglexm-armv6/sys/arm/arm/locore.S ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/arm/locore.S Mon Jun 11 12:34:14 2012 (r237464) +++ soc2012/aleek/beaglexm-armv6/sys/arm/arm/locore.S Mon Jun 11 13:22:45 2012 (r237465) @@ -247,7 +247,7 @@ MMU_INIT(0x48000000, 0x48000000, 1, L1_TYPE_S|L1_SHARED|L1_S_C|L1_S_AP(AP_KRW)) #endif /*MMU_INIT(0x49020000, 0x49020000, 1, L1_TYPE_S|L1_S_C|L1_S_AP(AP_KRW))*/ - MMU_INIT(0x49000000, 0x49000000, 1, L1_TYPE_S|L1_S_AP(AP_KRW)) + MMU_INIT(0xe9000000, 0x49000000, 1, L1_TYPE_S|L1_S_AP(AP_KRW)) .word 0 /* end of table */ #endif .Lstart: Modified: soc2012/aleek/beaglexm-armv6/sys/arm/conf/BEAGLEBOARD-XM ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/conf/BEAGLEBOARD-XM Mon Jun 11 12:34:14 2012 (r237464) +++ soc2012/aleek/beaglexm-armv6/sys/arm/conf/BEAGLEBOARD-XM Mon Jun 11 13:22:45 2012 (r237465) @@ -50,7 +50,7 @@ # Debugging makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols options BREAK_TO_DEBUGGER -#options VERBOSE_SYSINIT #Enable verbose sysinit messages +#options VERBOSE_SYSINIT #Enable verbose sysinit messages options KDB options DDB #Enable the kernel debugger options INVARIANTS #Enable calls of extra sanity checking Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_early_uart.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_early_uart.c Mon Jun 11 12:34:14 2012 (r237464) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_early_uart.c Mon Jun 11 13:22:45 2012 (r237465) @@ -50,8 +50,8 @@ void arm_early_putc( char c ) { - volatile uint32_t *uart = (volatile uint32_t *)0x49020000; - volatile uint32_t *uart_lsr = (volatile uint32_t *)0x49020014; + volatile uint32_t *uart = (volatile uint32_t *)0xe9020000; + volatile uint32_t *uart_lsr = (volatile uint32_t *)0xe9020014; while ((*uart_lsr & 0x20) == 0); *uart = c; Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_cpuid.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_cpuid.c Mon Jun 11 12:34:14 2012 (r237464) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_cpuid.c Mon Jun 11 13:22:45 2012 (r237465) @@ -253,6 +253,12 @@ cpu_last_char, AM335X_DEVREV(chip_revision)); } +/* static void +am37x_get_revision(void) +{ + // XXX @TODO fix this + printf( "Texas Instruments AM37x HABABABA Processor - FIXME bejbe\n" ); +}*/ /** * ti_cpu_ident - attempts to identify the chip we are running on * @dummy: ignored @@ -277,6 +283,10 @@ case CHIP_AM335X: am335x_get_revision(); break; + case CHIP_AM37X: + omap3_get_revision(); + //am37x_get_revision(); + break; default: panic("Unknown chip type, fixme!\n"); } Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_machdep.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_machdep.c Mon Jun 11 12:34:14 2012 (r237464) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_machdep.c Mon Jun 11 13:22:45 2012 (r237465) @@ -560,7 +560,9 @@ */ OF_interpret("perform-fixup", 0); + arm_early_puts( "cninit()..." ); cninit(); + arm_early_puts( "done!\n" ); physmem = memsize / PAGE_SIZE; @@ -629,6 +631,8 @@ /* Do basic tuning, hz etc */ init_param2(physmem); + + debugf("initarm: kdb_init()\n"); kdb_init(); return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP - Modified: soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts Mon Jun 11 12:34:14 2012 (r237464) +++ soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts Mon Jun 11 13:22:45 2012 (r237465) @@ -41,10 +41,10 @@ memory { device_type = "memory"; - reg = < 0x80000000 0x10000000 >; /* 256MB RAM */ + reg = < 0x80000000 0x20000000 >; /* 256MB RAM */ }; - SOC: am335x { + SOC: am37x { #address-cells = <1>; #size-cells = <1>; compatible = "simple-bus"; @@ -59,48 +59,8 @@ reg = < 0x48200000 0x1000 >; }; - scm@44e10000 { - compatible = "ti,scm"; - reg = < 0x44e10000 0x2000 >; - /* Set of triplets < padname, muxname, padstate> */ - scm-pad-config = - /* I2C0 */ - "I2C0_SDA", "I2C0_SDA","input_pullup_inact_slow", - "I2C0_SCL", "I2C0_SCL","input_pullup_inact_slow", - /* Ethernet */ - "MII1_RX_ER", "gmii1_rxerr", "input", - "MII1_TX_EN", "gmii1_txen", "output", - "MII1_RX_DV", "gmii1_rxdv", "input", - "MII1_TXD3", "gmii1_txd3", "output", - "MII1_TXD2", "gmii1_txd2", "output", - "MII1_TXD1", "gmii1_txd1", "output", - "MII1_TXD0", "gmii1_txd0", "output", - "MII1_TX_CLK", "gmii1_txclk", "input", - "MII1_RX_CLK", "gmii1_rxclk", "input", - "MII1_RXD3", "gmii1_rxd3", "input", - "MII1_RXD2", "gmii1_rxd2", "input", - "MII1_RXD1", "gmii1_rxd1", "input", - "MII1_RXD0", "gmii1_rxd0", "input", - "MDIO", "mdio_data", "input_pullup_inact", - "MDC", "mdio_clk", "output_pullup", - /* MMCSD0 */ - "MMC0_CMD", "mmc0_cmd", "input_pullup_inact", - "MMC0_CLK", "mmc0_clk", "input_pullup_inact", - "MMC0_DAT0", "mmc0_dat0", "input_pullup_inact", - "MMC0_DAT1", "mmc0_dat1", "input_pullup_inact", - "MMC0_DAT2", "mmc0_dat2", "input_pullup_inact", - "MMC0_DAT3", "mmc0_dat3", "input_pullup_inact"; - }; - - prcm@44E00000 { - compatible = "am335x,prcm"; - #address-cells = <1>; - #size-cells = <1>; - reg = < 0x44E00000 0x1300 >; - }; - dmtimers@44E05000 { - compatible = "ti,am335x-dmtimer"; + compatible = "ti,am37x-dmtimer"; #address-cells = <1>; #size-cells = <1>; reg = < 0x44E05000 0x1000 @@ -115,74 +75,27 @@ interrupt-parent = <&AINTC>; }; - GPIO: gpio { - #gpio-cells = <3>; - compatible = "ti,gpio"; - gpio-controller; - reg =< 0x44E07000 0x1000 - 0x4804C000 0x1000 - 0x481AC000 0x1000 - 0x481AE000 0x1000 >; - interrupts = < 17 19 21 23 >; - interrupt-parent = <&AINTC>; - }; - - - uart0: serial@44E09000 { + uart0: serial@49020000 { compatible = "ns16550"; - reg = <0x44E09000 0x1000>; + reg = <0x49020000 0x1000>; reg-shift = <2>; - interrupts = < 72 >; + interrupts = < 74 >; interrupt-parent = <&AINTC>; clock-frequency = < 48000000 >; /* FIXME */ }; - edma3@49000000 { - compatible = "ti,edma3"; - reg =< 0x49000000 0x100000 /* Channel Controller Regs */ - 0x49800000 0x100000 /* Transfer Controller 0 Regs */ - 0x49900000 0x100000 /* Transfer Controller 1 Regs */ - 0x49a00000 0x100000 >; /* Transfer Controller 2 Regs */ - interrupts = <12 13 14>; - interrupt-parent = <&AINTC>; - }; - - mmchs0@4809C000 { - compatible = "ti,mmchs"; - reg =<0x48060000 0x1000 >; - interrupts = <64>; - interrupt-parent = <&AINTC>; - mmchs-device-id = <0>; - }; - enet0: ethernet@4A100000 { - #address-cells = <1>; - #size-cells = <1>; - compatible = "ti,cpsw"; - reg = <0x4A100000 0x3000>; - interrupts = <40 41 42 43>; - interrupt-parent = <&AINTC>; - phy-handle = <&phy0>; - mdio@0 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "ti,cpsw-mdio"; - phy0: ethernet-phy@0 { - reg = <0x0>; - }; - }; - }; - i2c0: i2c@44e0b000 { + i2c0: i2c@48070000 { #address-cells = <1>; #size-cells = <0>; compatible = "ti,i2c"; - reg =< 0x44e0b000 0x1000 >; - interrupts = <70>; + reg =< 0x48070000 0x1000 >; + interrupts = <56>; interrupt-parent = <&AINTC>; i2c-device-id = <0>; pmic@24 { - compatible = "ti,am335x-pmic"; + compatible = "ti,am37x-pmic"; reg = <0x24>; }; }; From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 15:04:36 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id D219F106574E for ; Mon, 11 Jun 2012 15:04:34 +0000 (UTC) (envelope-from vbotton@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 15:04:34 +0000 Date: Mon, 11 Jun 2012 15:04:34 +0000 From: vbotton@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611150434.D219F106574E@hub.freebsd.org> Cc: Subject: socsvn commit: r237468 - soc2012/vbotton/ntfs_apple X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 15:04:37 -0000 Author: vbotton Date: Mon Jun 11 15:04:34 2012 New Revision: 237468 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237468 Log: Endianness function, and first allocation changed Modified: soc2012/vbotton/ntfs_apple/ntfs_dir.c soc2012/vbotton/ntfs_apple/ntfs_index.h soc2012/vbotton/ntfs_apple/ntfs_inode.h soc2012/vbotton/ntfs_apple/ntfs_types.h Modified: soc2012/vbotton/ntfs_apple/ntfs_dir.c ============================================================================== --- soc2012/vbotton/ntfs_apple/ntfs_dir.c Mon Jun 11 14:02:02 2012 (r237467) +++ soc2012/vbotton/ntfs_apple/ntfs_dir.c Mon Jun 11 15:04:34 2012 (r237468) @@ -168,10 +168,10 @@ * ntfs_index_inode_read()). */ ir = (INDEX_ROOT*)((u8*)ctx->a + le16toh(ctx->a->value_offset)); - index_end = (u8*)&ir->index + le32_to_cpu(ir->index.index_length); + index_end = (u8*)&ir->index + le32toh(ir->index.index_length); /* The first index entry. */ ie = (INDEX_ENTRY*)((u8*)&ir->index + - le32_to_cpu(ir->index.entries_offset)); + le32toh(ir->index.entries_offset)); /* * Loop until we exceed valid memory (corruption case) or until we * reach the last entry. @@ -220,9 +220,8 @@ u8 len; if (!name) { - *res_name = name = OSMalloc( - sizeof(*name), - ntfs_malloc_tag); + *res_name = name = malloc( + sizeof(*name)); if (!name) { err = ENOMEM; goto put_err; @@ -236,8 +235,7 @@ len * sizeof(ntfschar)); } else { if (name) - OSFree(name, sizeof(*name), - ntfs_malloc_tag); + free(name); *res_name = NULL; } *res_mref = le64toh(ie->indexed_file); @@ -271,9 +269,8 @@ u8 len; if (!name) { - *res_name = name = OSMalloc( - sizeof(*name), - ntfs_malloc_tag); + *res_name = name = malloc( + sizeof(*name)); if (!name) { err = ENOMEM; goto put_err; @@ -347,7 +344,7 @@ goto put_err; } /* Get the starting vcn of the index block holding the child node. */ - vcn = sle64tohp((sle64*)((u8*)ie + le16toh(ie->length) - 8)); + vcn = le64toh(*(sle64*)((u8*)ie + le16toh(ie->length) - 8)); /* * We are done with the index root and the mft record. Release them, * otherwise we deadlock with ntfs_page_map(). @@ -398,7 +395,7 @@ goto page_err; } if (offsetof(INDEX_BLOCK, index) + - le32_to_cpu(ia->index.allocated_size) != + le32toh(ia->index.allocated_size) != ia_ni->block_size) { ntfs_error(mp, "Index buffer (VCN 0x%llx) of directory inode " "0x%llx has a size (%u) differing from the " @@ -407,7 +404,7 @@ (unsigned long long)vcn, (unsigned long long)dir_ni->mft_no, (unsigned) (offsetof(INDEX_BLOCK, index) + - le32_to_cpu(ia->index.allocated_size)), + le32toh(ia->index.allocated_size)), (unsigned)ia_ni->block_size); goto page_err; } @@ -420,7 +417,7 @@ (unsigned long long)dir_ni->mft_no); goto page_err; } - index_end = (u8*)&ia->index + le32_to_cpu(ia->index.index_length); + index_end = (u8*)&ia->index + le32toh(ia->index.index_length); if (index_end > (u8*)ia + ia_ni->block_size) { ntfs_error(mp, "Size of index buffer (VCN 0x%llx) of directory " "inode 0x%llx exceeds maximum size.", @@ -430,7 +427,7 @@ } /* The first index entry. */ ie = (INDEX_ENTRY*)((u8*)&ia->index + - le32_to_cpu(ia->index.entries_offset)); + le32toh(ia->index.entries_offset)); /* * Iterate similar to above big loop but applied to index buffer, thus * loop until we exceed valid memory (corruption case) or until we @@ -482,9 +479,8 @@ u8 len; if (!name) { - *res_name = name = OSMalloc( - sizeof(*name), - ntfs_malloc_tag); + *res_name = name = malloc( + sizeof(*name)); if (!name) { err = ENOMEM; goto page_err; @@ -498,8 +494,7 @@ len * sizeof(ntfschar)); } else { if (name) - OSFree(name, sizeof(*name), - ntfs_malloc_tag); + free(name); *res_name = NULL; } *res_mref = le64toh(ie->indexed_file); @@ -1582,10 +1577,10 @@ * ntfs_inode_read()). */ ir = (INDEX_ROOT*)((u8*)ctx->a + le16toh(ctx->a->value_offset)); - index_end = (u8*)&ir->index + le32_to_cpu(ir->index.index_length); + index_end = (u8*)&ir->index + le32toh(ir->index.index_length); /* The first index entry. */ ie = (INDEX_ENTRY*)((u8*)&ir->index + - le32_to_cpu(ir->index.entries_offset)); + le32toh(ir->index.entries_offset)); /* Bounds checks. */ if ((u8*)ie < (u8*)&ir->index || (u8*)ie + sizeof(INDEX_ENTRY_HEADER) > index_end || @@ -1713,7 +1708,7 @@ goto vol_err; } if (offsetof(INDEX_BLOCK, index) + - le32_to_cpu(ia->index.allocated_size) != + le32toh(ia->index.allocated_size) != ia_ni->block_size) { ntfs_error(vol->mp, "Index buffer (VCN 0x%llx) has a size " "(%u) differing from the directory specified " @@ -1721,7 +1716,7 @@ (unsigned long long) sle64toh(ia->index_block_vcn), (unsigned)(offsetof(INDEX_BLOCK, index) + - le32_to_cpu(ia->index.allocated_size)), + le32toh(ia->index.allocated_size)), (unsigned)ia_ni->block_size, es1, (unsigned long long)dir_ni->mft_no, es2); goto vol_err; @@ -1737,7 +1732,7 @@ (unsigned long long)dir_ni->mft_no); goto vol_err; } - index_end = (u8*)&ia->index + le32_to_cpu(ia->index.index_length); + index_end = (u8*)&ia->index + le32toh(ia->index.index_length); if (index_end > (u8*)ia + ia_ni->block_size) { ntfs_error(vol->mp, "Size of index block (VCN 0x%llx) " "exceeds maximum size%s%llx%s", @@ -1748,7 +1743,7 @@ } /* The first index entry. */ ie = (INDEX_ENTRY*)((u8*)&ia->index + - le32_to_cpu(ia->index.entries_offset)); + le32toh(ia->index.entries_offset)); /* Bounds checks. */ if ((u8*)ie < (u8*)&ia->index || (u8*)ie + sizeof(INDEX_ENTRY_HEADER) > index_end || Modified: soc2012/vbotton/ntfs_apple/ntfs_index.h ============================================================================== --- soc2012/vbotton/ntfs_apple/ntfs_index.h Mon Jun 11 14:02:02 2012 (r237467) +++ soc2012/vbotton/ntfs_apple/ntfs_index.h Mon Jun 11 15:04:34 2012 (r237468) @@ -39,6 +39,9 @@ #define _OSX_NTFS_INDEX_H #include +#include +#include +#include /* Foward declaration. */ typedef struct _ntfs_index_context ntfs_index_context; @@ -48,7 +51,6 @@ #include "ntfs_layout.h" #include "ntfs_types.h" -#include /** * @up: pointer to index context located directly above in the tree * @down: pointer to index context located directly below in the tree @@ -234,6 +236,8 @@ u8 *right_addr; }; +MALLOC_DECLARE(M_INDEX_NTFS_CONTEXT); +MALLOC_DEFINE(M_INDEX_NTFS_CONTEXT, "indexcontext", "index context"); /** * ntfs_index_ctx_alloc - allocate an index context @@ -242,7 +246,7 @@ */ inline ntfs_index_context *ntfs_index_ctx_alloc(void) { - return malloc(sizeof(ntfs_index_context)); + return malloc(sizeof(ntfs_index_context), M_INDEX_NTFS_CONTEXT, M_WAITOK); } /** @@ -316,7 +320,7 @@ */ static inline void ntfs_index_ctx_free(ntfs_index_context *ictx) { - free(ictx); + free(ictx, M_INDEX_NTFS_CONTEXT); } /** Modified: soc2012/vbotton/ntfs_apple/ntfs_inode.h ============================================================================== --- soc2012/vbotton/ntfs_apple/ntfs_inode.h Mon Jun 11 14:02:02 2012 (r237467) +++ soc2012/vbotton/ntfs_apple/ntfs_inode.h Mon Jun 11 15:04:34 2012 (r237468) @@ -38,15 +38,18 @@ #ifndef _OSX_NTFS_INODE_H #define _OSX_NTFS_INODE_H +#include +#include #include #include #include #include #include -#include #include #include #include +#include +#include /* Forward declarations. */ typedef struct _ntfs_inode ntfs_inode; @@ -464,7 +467,8 @@ */ static inline ntfs_inode *NTFS_I(struct vnode *vn) { - return vnode_fsnode(vn); + return (ntfs_inode*)vn->v_data; + //return vnode_fsnode(vn); } /** Modified: soc2012/vbotton/ntfs_apple/ntfs_types.h ============================================================================== --- soc2012/vbotton/ntfs_apple/ntfs_types.h Mon Jun 11 14:02:02 2012 (r237467) +++ soc2012/vbotton/ntfs_apple/ntfs_types.h Mon Jun 11 15:04:34 2012 (r237468) @@ -113,7 +113,7 @@ typedef int errno_t; typedef unsigned int lck_rw_type_t; -typedef struct mount mount_t; -typedef struct vnode vnode_t; +typedef struct mount* mount_t; +typedef struct vnode* vnode_t; #endif /* !_OSX_NTFS_TYPES_H */ From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 15:28:33 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 4033B106564A for ; Mon, 11 Jun 2012 15:28:31 +0000 (UTC) (envelope-from gpf@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 15:28:31 +0000 Date: Mon, 11 Jun 2012 15:28:31 +0000 From: gpf@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611152831.4033B106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237469 - soc2012/gpf/pefs_head/head/sys/sys X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 15:28:33 -0000 Author: gpf Date: Mon Jun 11 15:28:30 2012 New Revision: 237469 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237469 Log: - new mount optflag for checksum so we can do something like 'pefs mount -o checksum p.enc p' Modified: soc2012/gpf/pefs_head/head/sys/sys/mount.h Modified: soc2012/gpf/pefs_head/head/sys/sys/mount.h ============================================================================== --- soc2012/gpf/pefs_head/head/sys/sys/mount.h Mon Jun 11 15:04:34 2012 (r237468) +++ soc2012/gpf/pefs_head/head/sys/sys/mount.h Mon Jun 11 15:28:30 2012 (r237469) @@ -281,6 +281,7 @@ #define MNT_MULTILABEL 0x0000000004000000ULL /* MAC support for objects */ #define MNT_ACLS 0x0000000008000000ULL /* ACL support enabled */ #define MNT_NOATIME 0x0000000010000000ULL /* dont update file access time */ +#define MNT_CHECKSUM 0x0000000020000000ULL /* enable integrity checks for pefs */ #define MNT_NOCLUSTERR 0x0000000040000000ULL /* disable cluster read */ #define MNT_NOCLUSTERW 0x0000000080000000ULL /* disable cluster write */ #define MNT_SUJ 0x0000000100000000ULL /* using journaled soft updates */ From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 17:57:22 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 73AE0106577C for ; Mon, 11 Jun 2012 17:57:20 +0000 (UTC) (envelope-from exxo@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 17:57:20 +0000 Date: Mon, 11 Jun 2012 17:57:20 +0000 From: exxo@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611175720.73AE0106577C@hub.freebsd.org> Cc: Subject: socsvn commit: r237474 - in soc2012/exxo: . patches X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 17:57:22 -0000 Author: exxo Date: Mon Jun 11 17:57:19 2012 New Revision: 237474 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237474 Log: Adding support of getaddrinfo in openssl-1.0.1c Added: soc2012/exxo/bugnotes.txt soc2012/exxo/patches/openssl-1.0.1c-getaddrinfo.patch Added: soc2012/exxo/bugnotes.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/exxo/bugnotes.txt Mon Jun 11 17:57:19 2012 (r237474) @@ -0,0 +1,14 @@ + + + TYPE conceptual error + WHERE b_sock.c:689 in BIO_get_accept_socket() + DESCRIPTION the parsing of source address is not complete when requesting IPv6 listening explicitly + (e.g "localhost::1234" leads to h="localhost:", p="1234") + AFFECTS all hosts with IPv6 syntax "::" excluding "::port" + + -------------- + + TYPE incorrect behaviour of API + WHERE b_sock.c:705 in BIO_get_accept_socket() + DESCRIPTION requesting an IPv6 listening of an host without AAAA record fallback to IPv4 + AFFECTS all hosts supporting IPv4 only Added: soc2012/exxo/patches/openssl-1.0.1c-getaddrinfo.patch ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/exxo/patches/openssl-1.0.1c-getaddrinfo.patch Mon Jun 11 17:57:19 2012 (r237474) @@ -0,0 +1,134 @@ +diff -rup openssl-1.0.1c/crypto/bio/b_sock.c openssl-1.0.1c-working/crypto/bio/b_sock.c +--- openssl-1.0.1c/crypto/bio/b_sock.c 2012-04-16 19:43:14.000000000 +0200 ++++ openssl-1.0.1c-working/crypto/bio/b_sock.c 2012-06-10 01:09:15.000000000 +0200 +@@ -467,9 +467,60 @@ end: + #endif + } + ++int BIO_getaddrinfo(const char *hostname, const char *servname, ++ const struct addrinfo *hints, struct addrinfo **res) ++ { ++#ifdef EAI_FAMILY ++ int err; ++ const char *reason; ++ static union { void *p; ++ int (WSAAPI *f)(const char *,const char *, ++ const struct addrinfo *, ++ struct addrinfo **); ++ } p_getaddrinfo = {NULL}; ++ static union { void *p; ++ const char * (WSAAPI *f)(int); ++ } p_gai_strerror = {NULL}; ++ ++ if ((p_getaddrinfo.p=DSO_global_lookup("getaddrinfo"))!=NULL) ++ { ++ if ((err = (*p_getaddrinfo.f)(hostname,servname,hints,res))) ++ { ++ BIOerr(BIO_F_BIO_GETADDRINFO,BIO_R_BAD_HOSTNAME_LOOKUP); ++ if ((p_gai_strerror.p=DSO_global_lookup("gai_strerror"))!=NULL) ++ { ++#ifdef OPENSSL_SYS_WINDOWS /* gai_strerror is not thread-safe under Microsoft Windows */ ++ CRYPTO_w_lock(CRYPTO_LOCK_GAI_STRERROR); ++ reason = (*p_gai_strerror.f)(err); ++ CRYPTO_w_unlock(CRYPTO_LOCK_GAI_STRERROR); ++#else ++ reason = (*p_gai_strerror.f)(err); ++#endif ++ ERR_add_error_data(1, (*p_gai_strerror.f)(err)); ++ } ++ return (-1); ++ } ++ return (1); ++ } ++#endif ++ BIOerr(BIO_F_BIO_GETADDRINFO,BIO_R_UNSUPPORTED_METHOD); ++ return (-1); ++ } ++ ++void BIO_freeaddrinfo(struct addrinfo *ai) ++ { ++#ifdef EAI_FAMILY ++ static union { void *p; ++ void (WSAAPI *f)(struct addrinfo *); ++ } p_freeaddrinfo = {NULL}; ++ ++ if ((p_freeaddrinfo.p=DSO_global_lookup("freeaddrinfo"))!=NULL) ++ (*p_freeaddrinfo.f)(ai); ++#endif ++ } + + int BIO_sock_init(void) +- { ++ { + #ifdef OPENSSL_SYS_WINDOWS + static struct WSAData wsa_state; + +@@ -686,8 +737,9 @@ int BIO_get_accept_socket(char *host, in + hint.ai_flags = AI_PASSIVE; + if (h) + { +- if (strchr(h,':')) ++ if ((e = strchr(h,':'))) + { ++ *e = '\0'; + if (h[1]=='\0') h=NULL; + #if OPENSSL_USE_IPV6 + hint.ai_family = AF_INET6; +diff -rup openssl-1.0.1c/crypto/bio/bio.h openssl-1.0.1c-working/crypto/bio/bio.h +--- openssl-1.0.1c/crypto/bio/bio.h 2012-03-06 14:47:26.000000000 +0100 ++++ openssl-1.0.1c-working/crypto/bio/bio.h 2012-06-10 00:06:09.000000000 +0200 +@@ -76,6 +76,9 @@ + # endif + #endif + ++/* under which condition ? */ ++#include ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -715,6 +718,14 @@ struct hostent *BIO_gethostbyname(const + * substructures; if the buffer does not suffice, NULL is returned + * and an appropriate error code is set). + */ ++ ++#ifndef EAI_FAMILY ++struct addrinfo { /* dummy interface */ }; ++#endif ++ ++int BIO_getaddrinfo(const char *hostname, const char *servname, ++ const struct addrinfo *hints, struct addrinfo **res); ++void BIO_freeaddrinfo(struct addrinfo *ai); + int BIO_sock_error(int sock); + int BIO_socket_ioctl(int fd, long type, void *arg); + int BIO_socket_nbio(int fd,int mode); +@@ -782,6 +793,7 @@ void ERR_load_BIO_strings(void); + #define BIO_F_BIO_CALLBACK_CTRL 131 + #define BIO_F_BIO_CTRL 103 + #define BIO_F_BIO_GETHOSTBYNAME 120 ++#define BIO_F_BIO_GETADDRINFO 133 + #define BIO_F_BIO_GETS 104 + #define BIO_F_BIO_GET_ACCEPT_SOCKET 105 + #define BIO_F_BIO_GET_HOST_IP 106 +diff -rup openssl-1.0.1c/crypto/bio/bio_err.c openssl-1.0.1c-working/crypto/bio/bio_err.c +--- openssl-1.0.1c/crypto/bio/bio_err.c 2011-12-27 15:37:43.000000000 +0100 ++++ openssl-1.0.1c-working/crypto/bio/bio_err.c 2012-06-10 01:27:30.000000000 +0200 +@@ -76,6 +76,7 @@ static ERR_STRING_DATA BIO_str_functs[]= + {ERR_FUNC(BIO_F_BIO_CALLBACK_CTRL), "BIO_callback_ctrl"}, + {ERR_FUNC(BIO_F_BIO_CTRL), "BIO_ctrl"}, + {ERR_FUNC(BIO_F_BIO_GETHOSTBYNAME), "BIO_gethostbyname"}, ++{ERR_FUNC(BIO_F_BIO_GETADDRINFO), "BIO_getaddrinfo"}, + {ERR_FUNC(BIO_F_BIO_GETS), "BIO_gets"}, + {ERR_FUNC(BIO_F_BIO_GET_ACCEPT_SOCKET), "BIO_get_accept_socket"}, + {ERR_FUNC(BIO_F_BIO_GET_HOST_IP), "BIO_get_host_ip"}, +diff -rup openssl-1.0.1c/crypto/crypto.h openssl-1.0.1c-working/crypto/crypto.h +--- openssl-1.0.1c/crypto/crypto.h 2011-06-01 18:54:03.000000000 +0200 ++++ openssl-1.0.1c-working/crypto/crypto.h 2012-06-10 01:01:26.000000000 +0200 +@@ -222,6 +222,7 @@ typedef struct openssl_item_st + #define CRYPTO_LOCK_FIPS 39 + #define CRYPTO_LOCK_FIPS2 40 + #define CRYPTO_NUM_LOCKS 41 ++#define CRYPTO_LOCK_GAI_STRERROR 42 + + #define CRYPTO_LOCK 1 + #define CRYPTO_UNLOCK 2 From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 21:28:42 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id B5A971065674 for ; Mon, 11 Jun 2012 21:28:40 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 21:28:40 +0000 Date: Mon, 11 Jun 2012 21:28:40 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611212840.B5A971065674@hub.freebsd.org> Cc: Subject: socsvn commit: r237502 - in soc2012/jhagewood: . diff diff3 diff3/diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 21:28:42 -0000 Author: jhagewood Date: Mon Jun 11 21:28:40 2012 New Revision: 237502 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237502 Log: Modified: soc2012/jhagewood/Milestones soc2012/jhagewood/diff/hagewood-diff.patch soc2012/jhagewood/diff3/diff3/diff3prog.c soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/Milestones ============================================================================== --- soc2012/jhagewood/Milestones Mon Jun 11 20:58:23 2012 (r237501) +++ soc2012/jhagewood/Milestones Mon Jun 11 21:28:40 2012 (r237502) @@ -1,6 +1,6 @@ May 21 - June 17 - Implement all missing features of mdocml, including legacy features. + Implement missing features of mdocml, including legacy features. Testing of mdocml. June 18 - July 1 Modified: soc2012/jhagewood/diff/hagewood-diff.patch ============================================================================== --- soc2012/jhagewood/diff/hagewood-diff.patch Mon Jun 11 20:58:23 2012 (r237501) +++ soc2012/jhagewood/diff/hagewood-diff.patch Mon Jun 11 21:28:40 2012 (r237502) @@ -1,6 +1,6 @@ diff -rupN jhagewood/diff/diff-orig/diff.c jhagewood/diff/diff/diff.c --- jhagewood/diff/diff-orig/diff.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diff.c 2012-06-11 00:46:52.000000000 -0400 ++++ jhagewood/diff/diff/diff.c 2012-06-11 02:32:48.000000000 -0400 @@ -129,7 +129,6 @@ static struct option longopts[] = { { "report-identical-files", no_argument, NULL, 's' }, { "initial-tab", no_argument, NULL, 'T' }, Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c ============================================================================== --- soc2012/jhagewood/diff3/diff3/diff3prog.c Mon Jun 11 20:58:23 2012 (r237501) +++ soc2012/jhagewood/diff3/diff3/diff3prog.c Mon Jun 11 21:28:40 2012 (r237502) @@ -71,7 +71,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: diff3prog.c 2012-06-8 23:36:08Z $"); +__FBSDID("$FreeBSD$"); #include #include Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Mon Jun 11 20:58:23 2012 (r237501) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Mon Jun 11 21:28:40 2012 (r237502) @@ -11,7 +11,7 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-10 03:31:05.000000000 -0400 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-11 21:26:48.000000000 -0400 @@ -64,24 +64,34 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ @@ -25,7 +25,7 @@ #endif +#endif /* not lint */ +#include -+__FBSDID("$FreeBSD: diff3prog.c 2012-06-8 23:36:08Z $"); ++__FBSDID("$FreeBSD$"); +#include +#include From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 22:50:51 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 61B621065670 for ; Mon, 11 Jun 2012 22:50:49 +0000 (UTC) (envelope-from tzabal@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 22:50:49 +0000 Date: Mon, 11 Jun 2012 22:50:49 +0000 From: tzabal@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611225049.61B621065670@hub.freebsd.org> Cc: Subject: socsvn commit: r237517 - in soc2012/tzabal/client-side/akcrs-head: etc/defaults etc/rc.d usr.sbin/crashreport X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 22:50:51 -0000 Author: tzabal Date: Mon Jun 11 22:50:48 2012 New Revision: 237517 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237517 Log: Client side: Set a unique name for every generated crash report instead of the generic 'report.tar.gz' in order to avoid overwrites in the server. Also, Rename the rc.conf variable 'email' to 'crashreport_email'. Modified: soc2012/tzabal/client-side/akcrs-head/etc/defaults/rc.conf soc2012/tzabal/client-side/akcrs-head/etc/rc.d/savecore soc2012/tzabal/client-side/akcrs-head/usr.sbin/crashreport/crashreport.sh Modified: soc2012/tzabal/client-side/akcrs-head/etc/defaults/rc.conf ============================================================================== --- soc2012/tzabal/client-side/akcrs-head/etc/defaults/rc.conf Mon Jun 11 21:56:37 2012 (r237516) +++ soc2012/tzabal/client-side/akcrs-head/etc/defaults/rc.conf Mon Jun 11 22:50:48 2012 (r237517) @@ -606,7 +606,7 @@ crashinfo_program="/usr/sbin/crashinfo" # Script to generate crash dump summary. crashreport_enable="NO" # Automatically report kernel crashes. crashreport_program="/usr/sbin/crashreport" # Script to send kernel crash report -email="" # System administrator email address. +crashreport_email="" # System administrator email address. quota_enable="NO" # turn on quotas on startup (or NO). check_quotas="YES" # Check quotas on startup (or NO). quotaon_flags="-a" # Turn quotas on for all file systems (if enabled) Modified: soc2012/tzabal/client-side/akcrs-head/etc/rc.d/savecore ============================================================================== --- soc2012/tzabal/client-side/akcrs-head/etc/rc.d/savecore Mon Jun 11 21:56:37 2012 (r237516) +++ soc2012/tzabal/client-side/akcrs-head/etc/rc.d/savecore Mon Jun 11 22:50:48 2012 (r237517) @@ -38,12 +38,12 @@ esac if [ ! -c "${dumpdev}" ]; then - warn "Dump device does not exist. Savecore not run." + warn "Dump device does not exist. Savecore not run." return 1 fi if [ ! -d "${dumpdir}" ]; then - warn "Dump directory does not exist. Savecore not run." + warn "Dump directory does not exist. Savecore not run." return 1 fi return 0 @@ -68,7 +68,8 @@ ${crashinfo_program} -d ${dumpdir} fi if checkyesno crashreport_enable; then - ${crashreport_program} -d ${dumpdir} -e ${email} + ${crashreport_program} -d ${dumpdir} \ + -e ${crashreport_email} fi else check_startmsgs && echo 'No core dumps found.' Modified: soc2012/tzabal/client-side/akcrs-head/usr.sbin/crashreport/crashreport.sh ============================================================================== --- soc2012/tzabal/client-side/akcrs-head/usr.sbin/crashreport/crashreport.sh Mon Jun 11 21:56:37 2012 (r237516) +++ soc2012/tzabal/client-side/akcrs-head/usr.sbin/crashreport/crashreport.sh Mon Jun 11 22:50:48 2012 (r237517) @@ -117,9 +117,9 @@ ## Find the email that will be used for contact if [ -z "${_email}" ]; then - if [ -n "${email}" ]; then + if [ -n "${crashreport_email}" ]; then # email of /etc/rc.conf - _email="${email}" + _email="${crashreport_email}" else error 'No email address for contact is specified.' exit 6 @@ -137,7 +137,8 @@ ## Bundle the report -report="report.tar.gz" +uniname=`mktemp /tmp/crashreport.XXXXXX` +report="${uniname##*/}.tar.gz" email_file=`mktemp /tmp/crashreport.XXXXXX` echo "${_email}" > ${email_file} @@ -149,7 +150,7 @@ exit 8 fi -rm -f "${email_file}" +rm -f "${uniname}" "${email_file}" ## Send the report to the Central Collector machine From owner-svn-soc-all@FreeBSD.ORG Mon Jun 11 23:29:17 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 98B221065670 for ; Mon, 11 Jun 2012 23:29:15 +0000 (UTC) (envelope-from gmiller@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 11 Jun 2012 23:29:15 +0000 Date: Mon, 11 Jun 2012 23:29:15 +0000 From: gmiller@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120611232915.98B221065670@hub.freebsd.org> Cc: Subject: socsvn commit: r237520 - in soc2012/gmiller/locking-head: include lib/libthr/thread X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2012 23:29:17 -0000 Author: gmiller Date: Mon Jun 11 23:29:14 2012 New Revision: 237520 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237520 Log: Implement pthread_getstatistics_begin_np(), pthread_getstatistics_next_np(), and pthread_get_statistics_end_np(). Modified: soc2012/gmiller/locking-head/include/pthread_np.h soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Modified: soc2012/gmiller/locking-head/include/pthread_np.h ============================================================================== --- soc2012/gmiller/locking-head/include/pthread_np.h Mon Jun 11 22:25:20 2012 (r237519) +++ soc2012/gmiller/locking-head/include/pthread_np.h Mon Jun 11 23:29:14 2012 (r237520) @@ -71,11 +71,23 @@ #ifdef LOCK_PROFILING +#include + +struct _pthread_statistics_private; + struct pthread_statistics_np { + struct _pthread_statistics_private *_pvt; + const char *file; + int line; + struct timespec wait_max; + struct timespec hold_max; + uintmax_t contest_count; + struct timespec wait_time; + struct timespec hold_time; + int acq_count; }; -void pthread_getstatistics_begin_np(struct pthread_statistics_np *, - size_t record_size); +void pthread_getstatistics_begin_np(struct pthread_statistics_np *); void pthread_getstatistics_next_np(struct pthread_statistics_np *); void pthread_getstatistics_end_np(struct pthread_statistics_np *); Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Mon Jun 11 22:25:20 2012 (r237519) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Mon Jun 11 23:29:14 2012 (r237520) @@ -66,6 +66,11 @@ struct acq_point_head mutex_hash[LOCK_PROF_HASH_SIZE]; +struct _pthread_statistics_private { + int hash; + struct acquisition_point *last_record; +}; + void _lock_profile_init() { @@ -275,20 +280,72 @@ { } +static int +find_next_record(struct pthread_statistics_np *stats) +{ + struct pthread *curthread = _get_curthread(); + + THR_CRITICAL_ENTER(curthread); + + for (;;) { + if (stats->_pvt->last_record == NULL) { + if (stats->_pvt->hash >= LOCK_PROF_HASH_SIZE) { + break; + } else { + stats->_pvt->hash++; + stats->_pvt->last_record = + SLIST_FIRST(&mutex_hash[stats->_pvt->hash]); + } + } else { + stats->_pvt->last_record = SLIST_NEXT(stats->_pvt-> + last_record, + acq_point_next); + } + + if (stats->_pvt->last_record != NULL) { + break; + } + } + + if (stats->_pvt->last_record != NULL) { + stats->file = stats->_pvt->last_record->file; + stats->line = stats->_pvt->last_record->line; + stats->wait_max = stats->_pvt->last_record->wait_max; + stats->hold_max = stats->_pvt->last_record->hold_max; + stats->contest_count = stats->_pvt->last_record->contest_count; + stats->wait_time = stats->_pvt->last_record->wait_time; + stats->hold_time = stats->_pvt->last_record->hold_time; + stats->acq_count = stats->_pvt->last_record->acq_count; + } + + THR_CRITICAL_LEAVE(curthread); + + return (stats->_pvt->last_record != NULL); +} + void -pthread_getstatistics_begin_np(struct pthread_statistics_np *stats, - size_t record_size) +pthread_getstatistics_begin_np(struct pthread_statistics_np *stats) { + stats->_pvt = malloc(sizeof(struct _pthread_statistics_private)); + stats->_pvt->hash = 0; + stats->_pvt->last_record = NULL; + + find_next_record(stats); } void pthread_getstatistics_next_np(struct pthread_statistics_np *stats) { + find_next_record(stats); } void pthread_getstatistics_end_np(struct pthread_statistics_np *stats) { + if (stats->_pvt != NULL) { + free(stats->_pvt); + stats->_pvt = NULL; + } } #endif /* LOCK_PROFILING */ From owner-svn-soc-all@FreeBSD.ORG Tue Jun 12 00:55:16 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id C767E106566B for ; Tue, 12 Jun 2012 00:55:14 +0000 (UTC) (envelope-from tzabal@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 12 Jun 2012 00:55:14 +0000 Date: Tue, 12 Jun 2012 00:55:14 +0000 From: tzabal@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120612005514.C767E106566B@hub.freebsd.org> Cc: Subject: socsvn commit: r237522 - soc2012/tzabal/client-side/akcrs-head/usr.sbin/crashreport X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 00:55:17 -0000 Author: tzabal Date: Tue Jun 12 00:55:14 2012 New Revision: 237522 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237522 Log: Client: Fix bug in the code for transfering the report. Couldn't accept automatically the fingerprint. Modified: soc2012/tzabal/client-side/akcrs-head/usr.sbin/crashreport/crashreport.sh Modified: soc2012/tzabal/client-side/akcrs-head/usr.sbin/crashreport/crashreport.sh ============================================================================== --- soc2012/tzabal/client-side/akcrs-head/usr.sbin/crashreport/crashreport.sh Mon Jun 11 23:07:21 2012 (r237521) +++ soc2012/tzabal/client-side/akcrs-head/usr.sbin/crashreport/crashreport.sh Tue Jun 12 00:55:14 2012 (r237522) @@ -159,9 +159,9 @@ # Host public key host_public_key_file=`mktemp /tmp/crashreport.XXXXXX` -echo "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIb\ -mlzdHAyNTYAAABBBIhASIzluEhQKC/R3aVYpdV7IU14XCDKnXp8c1/Bc2m6ri7S\ -aW0sJxihnGjgm4n3XFa+s5FpjHbN4snK4NAuDEY=" > ${host_public_key_file} +echo "akcrs.dyndns.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzd\ +HAyNTYAAAAIbmlzdHAyNTYAAABBBIhASIzluEhQKC/R3aVYpdV7IU14XCDKnXp8c1/Bc\ +2m6ri7SaW0sJxihnGjgm4n3XFa+s5FpjHbN4snK4NAuDEY=" > ${host_public_key_file} # User private key user_private_key_file=`mktemp /tmp/crashreport.XXXXXX` From owner-svn-soc-all@FreeBSD.ORG Tue Jun 12 01:22:51 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id A19661065673 for ; Tue, 12 Jun 2012 01:22:50 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 12 Jun 2012 01:22:50 +0000 Date: Tue, 12 Jun 2012 01:22:50 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120612012250.A19661065673@hub.freebsd.org> Cc: Subject: socsvn commit: r237524 - soc2012/jhagewood/diff3/diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 01:22:51 -0000 Author: jhagewood Date: Tue Jun 12 01:22:49 2012 New Revision: 237524 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237524 Log: Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c (props changed) From owner-svn-soc-all@FreeBSD.ORG Tue Jun 12 03:43:20 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 8014E106567A for ; Tue, 12 Jun 2012 03:43:18 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 12 Jun 2012 03:43:18 +0000 Date: Tue, 12 Jun 2012 03:43:18 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120612034318.8014E106567A@hub.freebsd.org> Cc: Subject: socsvn commit: r237526 - in soc2012/jhagewood: diff3 mdocml mdocml/mdocml-1.12.1 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 03:43:20 -0000 Author: jhagewood Date: Tue Jun 12 03:43:17 2012 New Revision: 237526 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237526 Log: Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch soc2012/jhagewood/mdocml/hagewood-mdocml-ti.patch soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Tue Jun 12 01:13:59 2012 (r237525) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Tue Jun 12 03:43:17 2012 (r237526) @@ -11,7 +11,7 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-11 21:26:48.000000000 -0400 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-12 01:22:51.000000000 -0400 @@ -64,24 +64,34 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ @@ -25,7 +25,7 @@ #endif +#endif /* not lint */ +#include -+__FBSDID("$FreeBSD$"); ++__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237524 2012-06-12 01:22:49Z jhagewood $"); +#include +#include Modified: soc2012/jhagewood/mdocml/hagewood-mdocml-ti.patch ============================================================================== --- soc2012/jhagewood/mdocml/hagewood-mdocml-ti.patch Tue Jun 12 01:13:59 2012 (r237525) +++ soc2012/jhagewood/mdocml/hagewood-mdocml-ti.patch Tue Jun 12 03:43:17 2012 (r237526) @@ -45,7 +45,7 @@ { in_line_eoln, 0 }, /* %U */ diff -rupN jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_term.c jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c --- jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_term.c 2012-06-10 03:31:06.000000000 -0400 -+++ jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c 2012-06-10 03:31:06.000000000 -0400 ++++ jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c 2012-06-12 03:42:29.000000000 -0400 @@ -115,6 +115,7 @@ static int termp_sh_pre(DECL_ARGS); static int termp_sm_pre(DECL_ARGS); static int termp_sp_pre(DECL_ARGS); @@ -58,17 +58,18 @@ { NULL, NULL }, /* En */ /* TODO */ { termp_xx_pre, NULL }, /* Dx */ { NULL, termp____post }, /* %Q */ -+ { termp_ti_pre, NULL } /* ti */ ++ { termp_ti_pre, NULL }, /* ti */ { termp_sp_pre, NULL }, /* br */ { termp_sp_pre, NULL }, /* sp */ { termp_under_pre, termp____post }, /* %U */ -@@ -1816,6 +1818,10 @@ termp_ss_post(DECL_ARGS) +@@ -1816,6 +1818,11 @@ termp_ss_post(DECL_ARGS) term_newln(p); } +static int +termp_ti_pre(DECL_ARGS) { + ++ p->offset = term_len(p, p->defindent); +} /* ARGSUSED */ Modified: soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c ============================================================================== --- soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c Tue Jun 12 01:13:59 2012 (r237525) +++ soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c Tue Jun 12 03:43:17 2012 (r237526) @@ -241,7 +241,7 @@ { NULL, NULL }, /* En */ /* TODO */ { termp_xx_pre, NULL }, /* Dx */ { NULL, termp____post }, /* %Q */ - { termp_ti_pre, NULL } /* ti */ + { termp_ti_pre, NULL }, /* ti */ { termp_sp_pre, NULL }, /* br */ { termp_sp_pre, NULL }, /* sp */ { termp_under_pre, termp____post }, /* %U */ @@ -1821,6 +1821,7 @@ static int termp_ti_pre(DECL_ARGS) { + p->offset = term_len(p, p->defindent); } /* ARGSUSED */ From owner-svn-soc-all@FreeBSD.ORG Tue Jun 12 05:39:38 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id F3D36106567C for ; Tue, 12 Jun 2012 05:39:35 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 12 Jun 2012 05:39:35 +0000 Date: Tue, 12 Jun 2012 05:39:35 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120612053935.F3D36106567C@hub.freebsd.org> Cc: Subject: socsvn commit: r237531 - in soc2012/jhagewood: diff diff/diff mdocml mdocml/mdocml-1.12.1 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 05:39:38 -0000 Author: jhagewood Date: Tue Jun 12 05:39:35 2012 New Revision: 237531 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237531 Log: Modified: soc2012/jhagewood/diff/diff/diff.c soc2012/jhagewood/diff/diff/diff.h soc2012/jhagewood/diff/diff/diffreg.c soc2012/jhagewood/diff/hagewood-diff.patch soc2012/jhagewood/mdocml/hagewood-mdocml-ns.patch soc2012/jhagewood/mdocml/mdocml-1.12.1/man.h soc2012/jhagewood/mdocml/mdocml-1.12.1/man_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_argv.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_macro.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c Modified: soc2012/jhagewood/diff/diff/diff.c ============================================================================== --- soc2012/jhagewood/diff/diff/diff.c Tue Jun 12 04:58:52 2012 (r237530) +++ soc2012/jhagewood/diff/diff/diff.c Tue Jun 12 05:39:35 2012 (r237531) @@ -45,7 +45,7 @@ #include "diff.h" #include "pathnames.h" -int aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag; +int aflag, bflag, cflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag; int sflag, tflag, Tflag, wflag; int Bflag, yflag; int strip_cr, tabsize=8; @@ -196,6 +196,7 @@ break; case 'C': case 'c': + cflag = 1; format = D_CONTEXT; if (optarg != NULL) { l = strtol(optarg, &ep, 10); Modified: soc2012/jhagewood/diff/diff/diff.h ============================================================================== --- soc2012/jhagewood/diff/diff/diff.h Tue Jun 12 04:58:52 2012 (r237530) +++ soc2012/jhagewood/diff/diff/diff.h Tue Jun 12 05:39:35 2012 (r237531) @@ -75,7 +75,7 @@ struct excludes *next; }; -extern int aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag, +extern int aflag, bflag, cflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag, sflag, tflag, Tflag, wflag; extern int Bflag, strip_cr, tabsize; extern int format, context, status; Modified: soc2012/jhagewood/diff/diff/diffreg.c ============================================================================== --- soc2012/jhagewood/diff/diff/diffreg.c Tue Jun 12 04:58:52 2012 (r237530) +++ soc2012/jhagewood/diff/diff/diffreg.c Tue Jun 12 05:39:35 2012 (r237531) @@ -1551,29 +1551,33 @@ static void print_header(const char *file1, const char *file2) { - const char *time_format; -#ifdef ST_MTIM_NSEC - time_format = "%Y-%m-%d %H:%M:%S.%N %z"; -#else - time_format = "%Y-%m-%d %H:%M:%S %z"; -#endif + const char *time_format; struct tm *tm_ptr1, *tm_ptr2; char buf1[256]; char buf2[256]; +#ifdef ST_MTIM_NSEC + time_format = "%Y-%m-%d %H:%M:%S.%N %z"; +#else + time_format = "%Y-%m-%d %H:%M:%S %z"; +#endif + + if (cflag) + time_format = "%c"; tm_ptr1 = localtime(&stb1.st_mtime); tm_ptr2 = localtime(&stb2.st_mtime); strftime(buf1, 256, time_format, tm_ptr1); strftime(buf2, 256, time_format, tm_ptr2); + if (label[0] != NULL) printf("%s %s\n", format == D_CONTEXT ? "***" : "---", - label[0]); + label[0]); else printf("%s %s\t%s\n", format == D_CONTEXT ? "***" : "---", - file1, buf1); + file1, buf1); if (label[1] != NULL) printf("%s %s\n", format == D_CONTEXT ? "---" : "+++", - label[1]); + label[1]); else printf("%s %s\t%s\n", format == D_CONTEXT ? "---" : "+++", - file2, buf2); + file2, buf2); } Modified: soc2012/jhagewood/diff/hagewood-diff.patch ============================================================================== --- soc2012/jhagewood/diff/hagewood-diff.patch Tue Jun 12 04:58:52 2012 (r237530) +++ soc2012/jhagewood/diff/hagewood-diff.patch Tue Jun 12 05:39:35 2012 (r237531) @@ -1,6 +1,15 @@ diff -rupN jhagewood/diff/diff-orig/diff.c jhagewood/diff/diff/diff.c --- jhagewood/diff/diff-orig/diff.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diff.c 2012-06-11 02:32:48.000000000 -0400 ++++ jhagewood/diff/diff/diff.c 2012-06-12 05:35:45.000000000 -0400 +@@ -45,7 +45,7 @@ __FBSDID("$FreeBSD$"); + #include "diff.h" + #include "pathnames.h" + +-int aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag; ++int aflag, bflag, cflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag; + int sflag, tflag, Tflag, wflag; + int Bflag, yflag; + int strip_cr, tabsize=8; @@ -129,7 +129,6 @@ static struct option longopts[] = { { "report-identical-files", no_argument, NULL, 's' }, { "initial-tab", no_argument, NULL, 'T' }, @@ -9,7 +18,15 @@ { "unified", optional_argument, NULL, 'U' }, { "version", no_argument, NULL, 'v' }, /* XXX: UNIMPLEMENTED -@@ -548,7 +547,7 @@ print_status(int val, char *path1, char +@@ -197,6 +196,7 @@ main(int argc, char **argv) + break; + case 'C': + case 'c': ++ cflag = 1; + format = D_CONTEXT; + if (optarg != NULL) { + l = strtol(optarg, &ep, 10); +@@ -548,7 +548,7 @@ print_status(int val, char *path1, char path1, entry ? entry : "", path2, entry ? entry : ""); break; case D_BINARY: @@ -18,40 +35,58 @@ path1, entry ? entry : "", path2, entry ? entry : ""); break; case D_DIFFER: +diff -rupN jhagewood/diff/diff-orig/diff.h jhagewood/diff/diff/diff.h +--- jhagewood/diff/diff-orig/diff.h 2012-06-10 03:31:05.000000000 -0400 ++++ jhagewood/diff/diff/diff.h 2012-06-12 05:34:04.000000000 -0400 +@@ -75,7 +75,7 @@ struct excludes { + struct excludes *next; + }; + +-extern int aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag, ++extern int aflag, bflag, cflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag, + sflag, tflag, Tflag, wflag; + extern int Bflag, strip_cr, tabsize; + extern int format, context, status; diff -rupN jhagewood/diff/diff-orig/diffreg.c jhagewood/diff/diff/diffreg.c --- jhagewood/diff/diff-orig/diffreg.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diffreg.c 2012-06-11 00:49:41.000000000 -0400 -@@ -1551,16 +1551,29 @@ dump_unified_vec(FILE *f1, FILE *f2) ++++ jhagewood/diff/diff/diffreg.c 2012-06-12 05:38:29.000000000 -0400 +@@ -1551,16 +1551,33 @@ dump_unified_vec(FILE *f1, FILE *f2) static void print_header(const char *file1, const char *file2) { -+ const char *time_format; -+#ifdef ST_MTIM_NSEC -+ time_format = "%Y-%m-%d %H:%M:%S.%N %z"; -+#else -+ time_format = "%Y-%m-%d %H:%M:%S %z"; -+#endif ++ const char *time_format; + struct tm *tm_ptr1, *tm_ptr2; + char buf1[256]; + char buf2[256]; ++#ifdef ST_MTIM_NSEC ++ time_format = "%Y-%m-%d %H:%M:%S.%N %z"; ++#else ++ time_format = "%Y-%m-%d %H:%M:%S %z"; ++#endif ++ ++ if (cflag) ++ time_format = "%c"; + tm_ptr1 = localtime(&stb1.st_mtime); + tm_ptr2 = localtime(&stb2.st_mtime); + strftime(buf1, 256, time_format, tm_ptr1); + strftime(buf2, 256, time_format, tm_ptr2); ++ if (label[0] != NULL) printf("%s %s\n", format == D_CONTEXT ? "***" : "---", - label[0]); +- label[0]); ++ label[0]); else - printf("%s %s\t%s", format == D_CONTEXT ? "***" : "---", - file1, ctime(&stb1.st_mtime)); + printf("%s %s\t%s\n", format == D_CONTEXT ? "***" : "---", -+ file1, buf1); ++ file1, buf1); if (label[1] != NULL) printf("%s %s\n", format == D_CONTEXT ? "---" : "+++", - label[1]); +- label[1]); ++ label[1]); else - printf("%s %s\t%s", format == D_CONTEXT ? "---" : "+++", - file2, ctime(&stb2.st_mtime)); + printf("%s %s\t%s\n", format == D_CONTEXT ? "---" : "+++", -+ file2, buf2); ++ file2, buf2); } Modified: soc2012/jhagewood/mdocml/hagewood-mdocml-ns.patch ============================================================================== --- soc2012/jhagewood/mdocml/hagewood-mdocml-ns.patch Tue Jun 12 04:58:52 2012 (r237530) +++ soc2012/jhagewood/mdocml/hagewood-mdocml-ns.patch Tue Jun 12 05:39:35 2012 (r237531) @@ -1,6 +1,6 @@ diff -rupN jhagewood/mdocml/mdocml-1.12.1-orig/man.h jhagewood/mdocml/mdocml-1.12.1/man.h ---- jhagewood/mdocml/mdocml-1.12.1-orig/man.h 2012-06-04 23:30:13.000000000 -0400 -+++ jhagewood/mdocml/mdocml-1.12.1/man.h 2012-06-04 23:30:15.000000000 -0400 +--- jhagewood/mdocml/mdocml-1.12.1-orig/man.h 2012-06-10 03:31:06.000000000 -0400 ++++ jhagewood/mdocml/mdocml-1.12.1/man.h 2012-06-12 04:34:37.000000000 -0400 @@ -43,6 +43,8 @@ enum mant { MAN_sp, MAN_nf, @@ -10,9 +10,126 @@ MAN_RE, MAN_RS, MAN_DT, +diff -rupN jhagewood/mdocml/mdocml-1.12.1-orig/man.h.orig jhagewood/mdocml/mdocml-1.12.1/man.h.orig +--- jhagewood/mdocml/mdocml-1.12.1-orig/man.h.orig 1969-12-31 19:00:00.000000000 -0500 ++++ jhagewood/mdocml/mdocml-1.12.1/man.h.orig 2012-06-10 03:31:06.000000000 -0400 +@@ -0,0 +1,113 @@ ++/* $Id: man.h,v 1.60 2012/01/03 15:16:24 kristaps Exp $ */ ++/* ++ * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ ++#ifndef MAN_H ++#define MAN_H ++ ++enum mant { ++ MAN_br = 0, ++ MAN_TH, ++ MAN_SH, ++ MAN_SS, ++ MAN_TP, ++ MAN_LP, ++ MAN_PP, ++ MAN_P, ++ MAN_IP, ++ MAN_HP, ++ MAN_SM, ++ MAN_SB, ++ MAN_BI, ++ MAN_IB, ++ MAN_BR, ++ MAN_RB, ++ MAN_R, ++ MAN_B, ++ MAN_I, ++ MAN_IR, ++ MAN_RI, ++ MAN_na, ++ MAN_sp, ++ MAN_nf, ++ MAN_fi, ++ MAN_RE, ++ MAN_RS, ++ MAN_DT, ++ MAN_UC, ++ MAN_PD, ++ MAN_AT, ++ MAN_in, ++ MAN_ft, ++ MAN_OP, ++ MAN_MAX ++}; ++ ++enum man_type { ++ MAN_TEXT, ++ MAN_ELEM, ++ MAN_ROOT, ++ MAN_BLOCK, ++ MAN_HEAD, ++ MAN_BODY, ++ MAN_TAIL, ++ MAN_TBL, ++ MAN_EQN ++}; ++ ++struct man_meta { ++ char *msec; /* `TH' section (1, 3p, etc.) */ ++ char *date; /* `TH' normalised date */ ++ char *vol; /* `TH' volume */ ++ char *title; /* `TH' title (e.g., FOO) */ ++ char *source; /* `TH' source (e.g., GNU) */ ++}; ++ ++struct man_node { ++ struct man_node *parent; /* parent AST node */ ++ struct man_node *child; /* first child AST node */ ++ struct man_node *next; /* sibling AST node */ ++ struct man_node *prev; /* prior sibling AST node */ ++ int nchild; /* number children */ ++ int line; ++ int pos; ++ enum mant tok; /* tok or MAN__MAX if none */ ++ int flags; ++#define MAN_VALID (1 << 0) /* has been validated */ ++#define MAN_EOS (1 << 2) /* at sentence boundary */ ++#define MAN_LINE (1 << 3) /* first macro/text on line */ ++ enum man_type type; /* AST node type */ ++ char *string; /* TEXT node argument */ ++ struct man_node *head; /* BLOCK node HEAD ptr */ ++ struct man_node *tail; /* BLOCK node TAIL ptr */ ++ struct man_node *body; /* BLOCK node BODY ptr */ ++ const struct tbl_span *span; /* TBL */ ++ const struct eqn *eqn; /* EQN */ ++}; ++ ++/* Names of macros. Index is enum mant. */ ++extern const char *const *man_macronames; ++ ++__BEGIN_DECLS ++ ++struct man; ++ ++const struct man_node *man_node(const struct man *); ++const struct man_meta *man_meta(const struct man *); ++const struct mparse *man_mparse(const struct man *); ++ ++__END_DECLS ++ ++#endif /*!MAN_H*/ diff -rupN jhagewood/mdocml/mdocml-1.12.1-orig/man_term.c jhagewood/mdocml/mdocml-1.12.1/man_term.c ---- jhagewood/mdocml/mdocml-1.12.1-orig/man_term.c 2012-06-04 23:30:13.000000000 -0400 -+++ jhagewood/mdocml/mdocml-1.12.1/man_term.c 2012-06-04 23:30:15.000000000 -0400 +--- jhagewood/mdocml/mdocml-1.12.1-orig/man_term.c 2012-06-10 03:31:06.000000000 -0400 ++++ jhagewood/mdocml/mdocml-1.12.1/man_term.c 2012-06-12 04:36:15.000000000 -0400 @@ -82,6 +82,8 @@ static int pre_alternate(DECL_ARGS); static int pre_ft(DECL_ARGS); static int pre_ign(DECL_ARGS); @@ -31,7 +148,7 @@ { pre_ft, NULL, MAN_NOTEXT }, /* ft */ { pre_OP, NULL, 0 }, /* OP */ }; -@@ -433,6 +437,27 @@ pre_in(DECL_ARGS) +@@ -433,6 +437,22 @@ pre_in(DECL_ARGS) return(0); } @@ -40,8 +157,7 @@ +pre_ns(DECL_ARGS) +{ + -+ if ( ! (MAN_LINE & n->flags)) -+ p->flags |= TERMP_NOSPACE; ++ p->flags &= TERMP_NOSPACE; + return(1); +} + @@ -49,13 +165,1130 @@ +static int +pre_rs(DECL_ARGS) +{ -+ /* -+ if (SEC_SEE_ALSO != n->sec) -+ return(1); -+ if (MAN_BLOCK == n->type && n->prev) -+ term_vspace(p); */ ++ p->flags |= TERMP_NOSPACE; + return(1); +} /* ARGSUSED */ static int +diff -rupN jhagewood/mdocml/mdocml-1.12.1-orig/man_term.c.orig jhagewood/mdocml/mdocml-1.12.1/man_term.c.orig +--- jhagewood/mdocml/mdocml-1.12.1-orig/man_term.c.orig 1969-12-31 19:00:00.000000000 -0500 ++++ jhagewood/mdocml/mdocml-1.12.1/man_term.c.orig 2012-06-10 03:31:06.000000000 -0400 +@@ -0,0 +1,1117 @@ ++/* $Id: man_term.c,v 1.127 2012/01/03 15:16:24 kristaps Exp $ */ ++/* ++ * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons ++ * Copyright (c) 2010, 2011 Ingo Schwarze ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "mandoc.h" ++#include "out.h" ++#include "man.h" ++#include "term.h" ++#include "main.h" ++ ++#define MAXMARGINS 64 /* maximum number of indented scopes */ ++ ++/* FIXME: have PD set the default vspace width. */ ++ ++struct mtermp { ++ int fl; ++#define MANT_LITERAL (1 << 0) ++ size_t lmargin[MAXMARGINS]; /* margins (incl. visible page) */ ++ int lmargincur; /* index of current margin */ ++ int lmarginsz; /* actual number of nested margins */ ++ size_t offset; /* default offset to visible page */ ++}; ++ ++#define DECL_ARGS struct termp *p, \ ++ struct mtermp *mt, \ ++ const struct man_node *n, \ ++ const struct man_meta *m ++ ++struct termact { ++ int (*pre)(DECL_ARGS); ++ void (*post)(DECL_ARGS); ++ int flags; ++#define MAN_NOTEXT (1 << 0) /* Never has text children. */ ++}; ++ ++static int a2width(const struct termp *, const char *); ++static size_t a2height(const struct termp *, const char *); ++ ++static void print_man_nodelist(DECL_ARGS); ++static void print_man_node(DECL_ARGS); ++static void print_man_head(struct termp *, const void *); ++static void print_man_foot(struct termp *, const void *); ++static void print_bvspace(struct termp *, ++ const struct man_node *); ++ ++static int pre_B(DECL_ARGS); ++static int pre_HP(DECL_ARGS); ++static int pre_I(DECL_ARGS); ++static int pre_IP(DECL_ARGS); ++static int pre_OP(DECL_ARGS); ++static int pre_PP(DECL_ARGS); ++static int pre_RS(DECL_ARGS); ++static int pre_SH(DECL_ARGS); ++static int pre_SS(DECL_ARGS); ++static int pre_TP(DECL_ARGS); ++static int pre_alternate(DECL_ARGS); ++static int pre_ft(DECL_ARGS); ++static int pre_ign(DECL_ARGS); ++static int pre_in(DECL_ARGS); ++static int pre_literal(DECL_ARGS); ++static int pre_sp(DECL_ARGS); ++ ++static void post_IP(DECL_ARGS); ++static void post_HP(DECL_ARGS); ++static void post_RS(DECL_ARGS); ++static void post_SH(DECL_ARGS); ++static void post_SS(DECL_ARGS); ++static void post_TP(DECL_ARGS); ++ ++static const struct termact termacts[MAN_MAX] = { ++ { pre_sp, NULL, MAN_NOTEXT }, /* br */ ++ { NULL, NULL, 0 }, /* TH */ ++ { pre_SH, post_SH, 0 }, /* SH */ ++ { pre_SS, post_SS, 0 }, /* SS */ ++ { pre_TP, post_TP, 0 }, /* TP */ ++ { pre_PP, NULL, 0 }, /* LP */ ++ { pre_PP, NULL, 0 }, /* PP */ ++ { pre_PP, NULL, 0 }, /* P */ ++ { pre_IP, post_IP, 0 }, /* IP */ ++ { pre_HP, post_HP, 0 }, /* HP */ ++ { NULL, NULL, 0 }, /* SM */ ++ { pre_B, NULL, 0 }, /* SB */ ++ { pre_alternate, NULL, 0 }, /* BI */ ++ { pre_alternate, NULL, 0 }, /* IB */ ++ { pre_alternate, NULL, 0 }, /* BR */ ++ { pre_alternate, NULL, 0 }, /* RB */ ++ { NULL, NULL, 0 }, /* R */ ++ { pre_B, NULL, 0 }, /* B */ ++ { pre_I, NULL, 0 }, /* I */ ++ { pre_alternate, NULL, 0 }, /* IR */ ++ { pre_alternate, NULL, 0 }, /* RI */ ++ { pre_ign, NULL, MAN_NOTEXT }, /* na */ ++ { pre_sp, NULL, MAN_NOTEXT }, /* sp */ ++ { pre_literal, NULL, 0 }, /* nf */ ++ { pre_literal, NULL, 0 }, /* fi */ ++ { NULL, NULL, 0 }, /* RE */ ++ { pre_RS, post_RS, 0 }, /* RS */ ++ { pre_ign, NULL, 0 }, /* DT */ ++ { pre_ign, NULL, 0 }, /* UC */ ++ { pre_ign, NULL, 0 }, /* PD */ ++ { pre_ign, NULL, 0 }, /* AT */ ++ { pre_in, NULL, MAN_NOTEXT }, /* in */ ++ { pre_ft, NULL, MAN_NOTEXT }, /* ft */ ++ { pre_OP, NULL, 0 }, /* OP */ ++}; ++ ++ ++ ++void ++terminal_man(void *arg, const struct man *man) ++{ ++ struct termp *p; ++ const struct man_node *n; ++ const struct man_meta *m; ++ struct mtermp mt; ++ ++ p = (struct termp *)arg; ++ ++ if (0 == p->defindent) ++ p->defindent = 7; ++ ++ p->overstep = 0; ++ p->maxrmargin = p->defrmargin; ++ p->tabwidth = term_len(p, 5); ++ ++ if (NULL == p->symtab) ++ p->symtab = mchars_alloc(); ++ ++ n = man_node(man); ++ m = man_meta(man); ++ ++ term_begin(p, print_man_head, print_man_foot, m); ++ p->flags |= TERMP_NOSPACE; ++ ++ memset(&mt, 0, sizeof(struct mtermp)); ++ ++ mt.lmargin[mt.lmargincur] = term_len(p, p->defindent); ++ mt.offset = term_len(p, p->defindent); ++ ++ if (n->child) ++ print_man_nodelist(p, &mt, n->child, m); ++ ++ term_end(p); ++} ++ ++ ++static size_t ++a2height(const struct termp *p, const char *cp) ++{ ++ struct roffsu su; ++ ++ if ( ! a2roffsu(cp, &su, SCALE_VS)) ++ SCALE_VS_INIT(&su, atoi(cp)); ++ ++ return(term_vspan(p, &su)); ++} ++ ++ ++static int ++a2width(const struct termp *p, const char *cp) ++{ ++ struct roffsu su; ++ ++ if ( ! a2roffsu(cp, &su, SCALE_BU)) ++ return(-1); ++ ++ return((int)term_hspan(p, &su)); ++} ++ ++/* ++ * Printing leading vertical space before a block. ++ * This is used for the paragraph macros. ++ * The rules are pretty simple, since there's very little nesting going ++ * on here. Basically, if we're the first within another block (SS/SH), ++ * then don't emit vertical space. If we are (RS), then do. If not the ++ * first, print it. ++ */ ++static void ++print_bvspace(struct termp *p, const struct man_node *n) ++{ ++ ++ term_newln(p); ++ ++ if (n->body && n->body->child) ++ if (MAN_TBL == n->body->child->type) ++ return; ++ ++ if (MAN_ROOT == n->parent->type || MAN_RS != n->parent->tok) ++ if (NULL == n->prev) ++ return; ++ ++ term_vspace(p); ++} ++ ++/* ARGSUSED */ ++static int ++pre_ign(DECL_ARGS) ++{ ++ ++ return(0); ++} ++ ++ ++/* ARGSUSED */ ++static int ++pre_I(DECL_ARGS) ++{ ++ ++ term_fontrepl(p, TERMFONT_UNDER); ++ return(1); ++} ++ ++ ++/* ARGSUSED */ ++static int ++pre_literal(DECL_ARGS) ++{ ++ ++ term_newln(p); ++ ++ if (MAN_nf == n->tok) ++ mt->fl |= MANT_LITERAL; ++ else ++ mt->fl &= ~MANT_LITERAL; ++ ++ /* ++ * Unlike .IP and .TP, .HP does not have a HEAD. ++ * So in case a second call to term_flushln() is needed, ++ * indentation has to be set up explicitly. ++ */ ++ if (MAN_HP == n->parent->tok && p->rmargin < p->maxrmargin) { ++ p->offset = p->rmargin; ++ p->rmargin = p->maxrmargin; ++ p->flags &= ~(TERMP_NOBREAK | TERMP_TWOSPACE); ++ p->flags |= TERMP_NOSPACE; ++ } ++ ++ return(0); ++} ++ ++/* ARGSUSED */ ++static int ++pre_alternate(DECL_ARGS) ++{ ++ enum termfont font[2]; ++ const struct man_node *nn; ++ int savelit, i; ++ ++ switch (n->tok) { ++ case (MAN_RB): ++ font[0] = TERMFONT_NONE; ++ font[1] = TERMFONT_BOLD; ++ break; ++ case (MAN_RI): ++ font[0] = TERMFONT_NONE; ++ font[1] = TERMFONT_UNDER; ++ break; ++ case (MAN_BR): ++ font[0] = TERMFONT_BOLD; ++ font[1] = TERMFONT_NONE; ++ break; ++ case (MAN_BI): ++ font[0] = TERMFONT_BOLD; ++ font[1] = TERMFONT_UNDER; ++ break; ++ case (MAN_IR): ++ font[0] = TERMFONT_UNDER; ++ font[1] = TERMFONT_NONE; ++ break; ++ case (MAN_IB): ++ font[0] = TERMFONT_UNDER; ++ font[1] = TERMFONT_BOLD; ++ break; ++ default: ++ abort(); ++ } ++ ++ savelit = MANT_LITERAL & mt->fl; ++ mt->fl &= ~MANT_LITERAL; ++ ++ for (i = 0, nn = n->child; nn; nn = nn->next, i = 1 - i) { ++ term_fontrepl(p, font[i]); ++ if (savelit && NULL == nn->next) ++ mt->fl |= MANT_LITERAL; ++ print_man_node(p, mt, nn, m); ++ if (nn->next) ++ p->flags |= TERMP_NOSPACE; ++ } ++ ++ return(0); ++} ++ ++/* ARGSUSED */ ++static int ++pre_B(DECL_ARGS) ++{ ++ ++ term_fontrepl(p, TERMFONT_BOLD); ++ return(1); ++} ++ ++/* ARGSUSED */ ++static int ++pre_OP(DECL_ARGS) ++{ ++ ++ term_word(p, "["); ++ p->flags |= TERMP_NOSPACE; ++ ++ if (NULL != (n = n->child)) { ++ term_fontrepl(p, TERMFONT_BOLD); ++ term_word(p, n->string); ++ } ++ if (NULL != n && NULL != n->next) { ++ term_fontrepl(p, TERMFONT_UNDER); ++ term_word(p, n->next->string); ++ } ++ ++ term_fontrepl(p, TERMFONT_NONE); ++ p->flags |= TERMP_NOSPACE; ++ term_word(p, "]"); ++ return(0); ++} ++ ++/* ARGSUSED */ ++static int ++pre_ft(DECL_ARGS) ++{ ++ const char *cp; ++ ++ if (NULL == n->child) { ++ term_fontlast(p); ++ return(0); ++ } ++ ++ cp = n->child->string; ++ switch (*cp) { ++ case ('4'): ++ /* FALLTHROUGH */ ++ case ('3'): ++ /* FALLTHROUGH */ ++ case ('B'): ++ term_fontrepl(p, TERMFONT_BOLD); ++ break; ++ case ('2'): ++ /* FALLTHROUGH */ ++ case ('I'): ++ term_fontrepl(p, TERMFONT_UNDER); ++ break; ++ case ('P'): ++ term_fontlast(p); ++ break; ++ case ('1'): ++ /* FALLTHROUGH */ ++ case ('C'): ++ /* FALLTHROUGH */ ++ case ('R'): ++ term_fontrepl(p, TERMFONT_NONE); ++ break; ++ default: ++ break; ++ } ++ return(0); ++} ++ ++/* ARGSUSED */ ++static int ++pre_in(DECL_ARGS) ++{ ++ int len, less; ++ size_t v; ++ const char *cp; ++ ++ term_newln(p); ++ ++ if (NULL == n->child) { ++ p->offset = mt->offset; ++ return(0); ++ } ++ ++ cp = n->child->string; ++ less = 0; ++ ++ if ('-' == *cp) ++ less = -1; ++ else if ('+' == *cp) ++ less = 1; ++ else ++ cp--; ++ ++ if ((len = a2width(p, ++cp)) < 0) ++ return(0); ++ ++ v = (size_t)len; ++ ++ if (less < 0) ++ p->offset -= p->offset > v ? v : p->offset; ++ else if (less > 0) ++ p->offset += v; ++ else ++ p->offset = v; ++ ++ /* Don't let this creep beyond the right margin. */ ++ ++ if (p->offset > p->rmargin) ++ p->offset = p->rmargin; ++ ++ return(0); ++} ++ ++ ++/* ARGSUSED */ ++static int ++pre_sp(DECL_ARGS) ++{ ++ size_t i, len; ++ ++ if ((NULL == n->prev && n->parent)) { ++ if (MAN_SS == n->parent->tok) ++ return(0); ++ if (MAN_SH == n->parent->tok) ++ return(0); ++ } ++ ++ switch (n->tok) { ++ case (MAN_br): ++ len = 0; ++ break; ++ default: ++ len = n->child ? a2height(p, n->child->string) : 1; ++ break; ++ } ++ ++ if (0 == len) ++ term_newln(p); ++ for (i = 0; i < len; i++) ++ term_vspace(p); ++ ++ return(0); ++} ++ ++ ++/* ARGSUSED */ ++static int ++pre_HP(DECL_ARGS) ++{ ++ size_t len, one; ++ int ival; ++ const struct man_node *nn; ++ ++ switch (n->type) { ++ case (MAN_BLOCK): ++ print_bvspace(p, n); ++ return(1); ++ case (MAN_BODY): ++ p->flags |= TERMP_NOBREAK; ++ p->flags |= TERMP_TWOSPACE; ++ break; ++ default: ++ return(0); ++ } ++ ++ len = mt->lmargin[mt->lmargincur]; ++ ival = -1; ++ ++ /* Calculate offset. */ ++ ++ if (NULL != (nn = n->parent->head->child)) ++ if ((ival = a2width(p, nn->string)) >= 0) ++ len = (size_t)ival; ++ ++ one = term_len(p, 1); ++ if (len < one) ++ len = one; ++ ++ p->offset = mt->offset; ++ p->rmargin = mt->offset + len; ++ ++ if (ival >= 0) ++ mt->lmargin[mt->lmargincur] = (size_t)ival; ++ ++ return(1); ++} ++ ++ ++/* ARGSUSED */ ++static void ++post_HP(DECL_ARGS) ++{ ++ ++ switch (n->type) { ++ case (MAN_BLOCK): ++ term_flushln(p); ++ break; ++ case (MAN_BODY): ++ term_flushln(p); ++ p->flags &= ~TERMP_NOBREAK; ++ p->flags &= ~TERMP_TWOSPACE; ++ p->offset = mt->offset; ++ p->rmargin = p->maxrmargin; ++ break; ++ default: ++ break; ++ } ++} ++ ++ ++/* ARGSUSED */ ++static int ++pre_PP(DECL_ARGS) ++{ ++ ++ switch (n->type) { ++ case (MAN_BLOCK): ++ mt->lmargin[mt->lmargincur] = term_len(p, p->defindent); ++ print_bvspace(p, n); ++ break; ++ default: ++ p->offset = mt->offset; ++ break; ++ } ++ ++ return(MAN_HEAD != n->type); ++} ++ ++ ++/* ARGSUSED */ ++static int ++pre_IP(DECL_ARGS) ++{ ++ const struct man_node *nn; ++ size_t len; ++ int savelit, ival; ++ ++ switch (n->type) { ++ case (MAN_BODY): ++ p->flags |= TERMP_NOSPACE; ++ break; ++ case (MAN_HEAD): ++ p->flags |= TERMP_NOBREAK; ++ break; ++ case (MAN_BLOCK): ++ print_bvspace(p, n); ++ /* FALLTHROUGH */ ++ default: ++ return(1); ++ } ++ ++ len = mt->lmargin[mt->lmargincur]; ++ ival = -1; ++ ++ /* Calculate the offset from the optional second argument. */ ++ if (NULL != (nn = n->parent->head->child)) ++ if (NULL != (nn = nn->next)) ++ if ((ival = a2width(p, nn->string)) >= 0) ++ len = (size_t)ival; ++ ++ switch (n->type) { ++ case (MAN_HEAD): ++ /* Handle zero-width lengths. */ ++ if (0 == len) ++ len = term_len(p, 1); ++ ++ p->offset = mt->offset; ++ p->rmargin = mt->offset + len; ++ if (ival < 0) ++ break; ++ ++ /* Set the saved left-margin. */ ++ mt->lmargin[mt->lmargincur] = (size_t)ival; ++ ++ savelit = MANT_LITERAL & mt->fl; ++ mt->fl &= ~MANT_LITERAL; ++ ++ if (n->child) ++ print_man_node(p, mt, n->child, m); ++ ++ if (savelit) ++ mt->fl |= MANT_LITERAL; ++ ++ return(0); ++ case (MAN_BODY): ++ p->offset = mt->offset + len; ++ p->rmargin = p->maxrmargin; ++ break; ++ default: ++ break; ++ } ++ ++ return(1); ++} ++ ++ ++/* ARGSUSED */ ++static void ++post_IP(DECL_ARGS) ++{ ++ ++ switch (n->type) { ++ case (MAN_HEAD): ++ term_flushln(p); ++ p->flags &= ~TERMP_NOBREAK; ++ p->rmargin = p->maxrmargin; ++ break; ++ case (MAN_BODY): ++ term_newln(p); ++ break; ++ default: ++ break; ++ } ++} ++ ++ ++/* ARGSUSED */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-soc-all@FreeBSD.ORG Tue Jun 12 05:57:30 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 772AF106566B for ; Tue, 12 Jun 2012 05:57:28 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 12 Jun 2012 05:57:28 +0000 Date: Tue, 12 Jun 2012 05:57:28 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120612055728.772AF106566B@hub.freebsd.org> Cc: Subject: socsvn commit: r237532 - soc2012/jhagewood/diff X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 05:57:30 -0000 Author: jhagewood Date: Tue Jun 12 05:57:27 2012 New Revision: 237532 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237532 Log: Added: soc2012/jhagewood/diff/TODO Added: soc2012/jhagewood/diff/TODO ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/diff/TODO Tue Jun 12 05:57:27 2012 (r237532) @@ -0,0 +1,19 @@ +TASK STATUS NOTE + +--unified GNU compatibility IN PROGRESS Trailing decimal needed. +--context GNU compatibility IN PROGRESS +--ingnore-blank-lines INCOMPLETE +--left-column INCOMPLETE +--show-function-line INCOMPLETE +--unidirectional-new-file INCOMPLETE +--normal INCOMPLETE +--supress-common-lines INCOMPLETE +--GTYPE-group-format INCOMPLETE +--line-format INCOMPLETE +--LTYPE-line-format INCOMPLETE +--from-file INCOMPLETE +--to-file INCOMPLETE +--horizontal-lines INCOMPLETE +--speed-large-file INCOMPLETE +--ignore-tab-expansion INCOMPLETE +--width INCOMPLETE From owner-svn-soc-all@FreeBSD.ORG Tue Jun 12 06:08:04 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 516421065670 for ; Tue, 12 Jun 2012 06:08:02 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 12 Jun 2012 06:08:02 +0000 Date: Tue, 12 Jun 2012 06:08:02 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120612060802.516421065670@hub.freebsd.org> Cc: Subject: socsvn commit: r237533 - soc2012/jhagewood/diff X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 06:08:04 -0000 Author: jhagewood Date: Tue Jun 12 06:08:02 2012 New Revision: 237533 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237533 Log: Modified: soc2012/jhagewood/diff/TODO Modified: soc2012/jhagewood/diff/TODO ============================================================================== --- soc2012/jhagewood/diff/TODO Tue Jun 12 05:57:27 2012 (r237532) +++ soc2012/jhagewood/diff/TODO Tue Jun 12 06:08:02 2012 (r237533) @@ -1,19 +1,19 @@ TASK STATUS NOTE ---unified GNU compatibility IN PROGRESS Trailing decimal needed. ---context GNU compatibility IN PROGRESS ---ingnore-blank-lines INCOMPLETE ---left-column INCOMPLETE ---show-function-line INCOMPLETE ---unidirectional-new-file INCOMPLETE +--unified GNU compatibility IN PROGRESS Trailing decimal needed. +--context GNU compatibility IN PROGRESS Fixed timestamp. +--ingnore-blank-lines INCOMPLETE +--left-column INCOMPLETE +--show-function-line INCOMPLETE +--unidirectional-new-file INCOMPLETE --normal INCOMPLETE ---supress-common-lines INCOMPLETE ---GTYPE-group-format INCOMPLETE ---line-format INCOMPLETE ---LTYPE-line-format INCOMPLETE +--supress-common-lines INCOMPLETE +--GTYPE-group-format INCOMPLETE +--line-format INCOMPLETE +--LTYPE-line-format INCOMPLETE --from-file INCOMPLETE --to-file INCOMPLETE ---horizontal-lines INCOMPLETE ---speed-large-file INCOMPLETE ---ignore-tab-expansion INCOMPLETE +--horizontal-lines INCOMPLETE +--speed-large-file INCOMPLETE Argument is accepted, but makes no functional change. +--ignore-tab-expansion INCOMPLETE --width INCOMPLETE From owner-svn-soc-all@FreeBSD.ORG Tue Jun 12 12:24:58 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id D16731065673 for ; Tue, 12 Jun 2012 12:24:55 +0000 (UTC) (envelope-from aleek@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 12 Jun 2012 12:24:55 +0000 Date: Tue, 12 Jun 2012 12:24:55 +0000 From: aleek@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120612122455.D16731065673@hub.freebsd.org> Cc: Subject: socsvn commit: r237543 - in soc2012/aleek/beaglexm-armv6/sys/arm/ti: . am37x X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 12:24:58 -0000 Author: aleek Date: Tue Jun 12 12:24:55 2012 New Revision: 237543 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237543 Log: Added code for OMAP3 General Purpose Timer - its not working for now Added: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_prcm.c Added: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c Tue Jun 12 12:24:55 2012 (r237543) @@ -0,0 +1,538 @@ + +/*- + * Copyright (c) 2012 Aleksander Dutkowski + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Based on gptimer driver by Ben Gray + */ + +#define OMAP3_NUM_TIMERS 12 + +/* + * Ids of the timers used by the kernel + */ +#define TICKTIMER_GPTIMER 10 +#define TIMECOUNT_GPTIMER 11 + +/* + * Standard registers for OMAP3 General Purpose Timers + */ +#define OMAP3_GPT_TIDR 0x0000 +#define OMAP3_GPT_TIOCP_CFG 0x0010 +#define OMAP3_GPT_TISTAT 0x0014 +#define OMAP3_GPT_TISR 0x0018 +#define OMAP3_GPT_TIER 0x001C +#define OMAP3_GPT_TWER 0x0020 +#define OMAP3_GPT_TCLR 0x0024 +#define OMAP3_GPT_TCRR 0x0028 +#define OMAP3_GPT_TLDR 0x002C +#define OMAP3_GPT_TTGR 0x0030 +#define OMAP3_GPT_TWPS 0x0034 +#define OMAP3_GPT_TMAR 0x0038 +#define OMAP3_GPT_TCAR1 0x003C +#define OMAP3_GPT_TSICR 0x0040 +#define OMAP3_GPT_TCAR2 0x0044 +#define OMAP3_GPT_TPIR 0x0048 +#define OMAP3_GPT_TNIR 0x004C +#define OMAP3_GPT_TCVR 0x0050 +#define OMAP3_GPT_TOCR 0x0054 +#define OMAP3_GPT_TOWR 0x0058 + +/** + * Data structure per Timer. + */ +struct omap3_gptimer { + + /* Flags indicating current and configured status */ + unsigned int flags; + +#define OMAP_GPTIMER_AVAILABLE_FLAG 0x01000000 +#define OMAP_GPTIMER_ACTIVATED_FLAG 0x02000000 + + /* Lock taken when configuring the registers */ + struct mtx mtx; + + /* The memory resource for the timer register set */ + struct resource* mem_res; + + /* The IRQ resource and handle (if installed) for the timer */ + struct resource* irq_res; + void* irq_h; + + /* Callback function used when an interrupt is tripped on the given channel */ + void (*callback)(void *data); + + /* Callback data passed in the callback ... duh */ + void* callback_data; + + /* The profile of the timer, basically defines the register layout */ + unsigned int profile; + + /* The source clock to use */ + unsigned int source; +}; + + +/** + * Timer driver context, allocated and stored globally, this driver is not + * intended to ever be unloaded (see g_omap_gptimer_sc). + * + */ +struct omap3_gptimer_softc { + device_t sc_dev; + unsigned int sc_num_timers; + struct omap3_gptimer sc_timers[MAX_NUM_TIMERS]; + struct omap3_gptimer *sc_tick_timer; + +}; + +static struct omap3_gptimer_softc *g_omap3_gptimer_sc = NULL; + + +/** + * Timer for tick counting. This is used to measure time by CPU + */ +static struct omap3_gptimer *omap3_gptimer_tc_tmr = NULL; + +/** + * Struct used by tc_init(), to init the timecounter + */ +static struct timecounter omap3_gptimer_tc = { + /* Name of the timecounter. */ + .tc_name = "OMAP3 Timecouter", + /* + * This function reads the counter. It is not required to + * mask any unimplemented bits out, as long as they are + * constant. + */ + .tc_get_timecount = omap3_gptimer_tc_get_timecount, + .tc_poll_pps = NULL, + /* This mask should mask off any unimplemented bits. */ + .tc_counter_mask = ~0u, + /* Frequency of the counter in Hz. */ + .tc_frequency = 0, + /* + * Used to determine if this timecounter is better than + * another timecounter higher means better. Negative + * means "only use at explicit request". + */ + .tc_quality = 1000, +}; + +static unsigned +omap3_gptimer_tc_get_timecount(struct timecounter *tc) +{ + return omap3_gptimer_tc_read_4(DMTIMER_TCRR); +} + +/** + * omap_gptimer_activate - configures the timer + * @n: the number of the timer (first timer is number 1) + * @flags: defines the type of timer to turn on + * @time_ns: the period of the timer in nanoseconds + * @callback: if defined this function will be called when the timer overflows + * @data: data value to pass to the callback + * + * + * RETURNS: + * Returns 0 on success, otherwise an error code + */ +int +omap_gptimer_activate(unsigned int n, unsigned int flags, unsigned int time_us, + void (*callback)(void *data), void *data) +{ + struct omap_gptimer_softc *sc = g_omap3_gptimer_sc; + struct omap_gptimer *timer; + uint32_t val; + uint64_t tickcount; + unsigned int freq; + uint64_t freq64; + uint32_t prescaler; + uint32_t startcount; + + + /* Sanity checks */ + if (sc == NULL) + return (ENOMEM); + if ((n == 0) || (n > sc->sc_num_timers)) + return (EINVAL); + + /* Get a pointer to the individual timer struct */ + timer = &sc->sc_timers[n-1]; + + /* Sanity check the timer is availabe and not activated */ + if (!(timer->flags & OMAP_GPTIMER_AVAILABLE_FLAG)) { + device_printf(sc->sc_dev, "Error: timer %d not available\n", n); + return (EINVAL); + } + if (timer->flags & OMAP_GPTIMER_ACTIVATED_FLAG) { + device_printf(sc->sc_dev, "Error: timer %d already activated\n", n); + return (EINVAL); + } + + /* Set up system clock information */ + if (ti_prcm_clk_valid(timer->source) != 0) { + device_printf(sc->sc_dev, "Error: failed to find source clock\n"); + return (EINVAL); + } + + + OMAP_GPTIMER_LOCK(timer); + + /* Enable the functional and interface clock */ + if (flags & OMAP_GPTIMER_32KCLK_FLAG) + omap_prcm_clk_set_source(timer->source, F32KHZ_CLK); + else + omap_prcm_clk_set_source(timer->source, SYSCLK_CLK); + + omap_prcm_clk_enable(timer->source); + + + /* Store the flags in the timer context */ + timer->flags &= 0xFF000000; + timer->flags |= (0x00FFFFFF & flags); + + + /* Reset the timer and poll on the reset complete flag */ + if (timer->profile == OMAP_GPTIMER_PROFILE_OMAP3) { + omap_gptimer_writel(timer, OMAP_GPT_TIOCP_CFG, 0x2); + /* TODO: add a timeout */ + while ((omap_gptimer_readl(timer, OMAP_GPT_TISTAT) & 0x01) == 0x00) + continue; + + /* Clear the interrupt status */ + omap_gptimer_writel(timer, OMAP_GPT_TISR, TCAR | OVF | MAT); + } + + else if (timer->profile == OMAP_GPTIMER_PROFILE_OMAP4) { + omap_gptimer_writel(timer, OMAP_GPT_TIOCP_CFG, 0x1); + /* TODO: add a timeout */ + while ((omap_gptimer_readl(timer, OMAP_GPT_TIOCP_CFG) & 0x01) == 0x01) + continue; + + /* Clear the interrupt status */ + omap_gptimer_writel(timer, OMAP4_GPT_IRQSTATUS, TCAR | OVF | MAT); + } + + + /* If the user supplied a zero value we set a free running timer */ + if (time_us == 0) { + + /* Set the initial value and roll over value to 0 */ + startcount = 0x00000000; + + } else { + + /* We need to calculate the number of timer ticks in either the reload + * value (for periodic timers) or the overflow + */ + omap_prcm_clk_get_source_freq(timer->source, &freq); + freq64 = freq; + + /* Calculate the period of the timer, 64 bit calculations used to + * prevent rollover. + */ + tickcount = (freq64 * (uint64_t)time_us) / 1000000; + + /* Must have a count of at least 1 */ + if (tickcount == 0) + tickcount = 1; + + /* If the number is too large then see if by enabling the prescaler it + * will fit, otherwise just set the max count we can do. + */ + if (tickcount > 0xFFFFFFFFULL) { + + /* Try and find a prescaler that will match */ + for (prescaler = 0; prescaler < 7; prescaler++) { + if (tickcount < (0x1ULL << (32 + prescaler))) { + break; + } + } + + /* Adjust the count and apply the prescaler */ + tickcount >>= (prescaler + 1); + + val = omap_gptimer_readl(timer, timer->tclr); + val &= ~TCLR_PTV_MASK; + val |= TCLR_PRE | (prescaler << 2); + omap_gptimer_writel(timer, timer->tclr, val); + } + + /* Calculate the start value */ + startcount = 0xFFFFFFFFUL - (uint32_t)(tickcount & 0xFFFFFFFFUL); + +printf("[BRG] %s, %d : freq64=%llu : tickcount=%llu : startcount=%u : time_us=%u\n", + __func__, __LINE__, freq64, tickcount, startcount, time_us); + } + + /* Load the start value into the count register */ + omap_gptimer_writel(timer, timer->tcrr, startcount); + + + + /* Enable autoload mode if configuring a periodic timer or system tick + * timer. Also set the reload count to match the period tick count. + */ + if (flags & OMAP_GPTIMER_PERIODIC_FLAG) { + /* Enable auto reload */ + val = omap_gptimer_readl(timer, timer->tclr); + val |= TCLR_AR; + omap_gptimer_writel(timer, timer->tclr, val); + + /* Set the reload value */ + omap_gptimer_writel(timer, timer->tldr, startcount); + } + + + /* If a callback function has been supplied setup a overflow interrupt */ + if (callback != NULL) { + + /* Save the callback function and the data for it */ + timer->callback = callback; + timer->callback_data = data; + + /* Activate the interrupt */ + if (bus_setup_intr(sc->sc_dev, timer->irq_res, + INTR_TYPE_MISC | INTR_MPSAFE, NULL, omap_gptimer_intr, + (void*)timer, &timer->irq_h)) { + device_printf(sc->sc_dev, "Error: failed to activate interrupt\n"); + } + + /* Enable the overflow interrupts. */ + if (timer->profile == OMAP_GPTIMER_PROFILE_OMAP3) { + val = omap_gptimer_readl(timer, OMAP_GPT_TIER); + val |= OVF; + omap_gptimer_writel(timer, OMAP_GPT_TIER, val); + } + else if (timer->profile == OMAP_GPTIMER_PROFILE_OMAP4) { + omap_gptimer_writel(timer, OMAP4_GPT_IRQENABLE_SET, OVF); + } + } + + + /* Finally set the activated flag */ + timer->flags |= OMAP_GPTIMER_ACTIVATED_FLAG; + + OMAP_GPTIMER_UNLOCK(timer); + +printf("[BRG] %s, %d\n", __func__, __LINE__); + + return (0); +} + + + +/** + * cpu_initclocks - function called by the system in init the tick clock/timer + * + * This is where both the timercount and system ticks timer are started. + * + * RETURNS: + * nothing + */ +void +cpu_initclocks(void) +{ + cpu_initclocks_bsp(); +} + +/** + * DELAY - Delay for at least N microseconds. + * @n: number of microseconds to delay by + * + * This function is called all over the kernel and is suppose to provide a + * consistent delay. It is a busy loop and blocks polling a timer when called. + * + * RETURNS: + * nothing + */ +void +DELAY(int usec) +{ + int32_t counts; + uint32_t first, last; + + if (omap3_gptimer_tc_tmr == NULL) { + for (; usec > 0; usec--) + for (counts = 200; counts > 0; counts--) + /* Prevent gcc from optimizing out the loop */ + cpufunc_nullop(); + return; + } +} + +static void +omap3_gptimer_intr(void *arg) +{ + +} + +static int +omap3_gptimer_probe(device_t dev) +{ + device_set_desc(dev, "TI OMAP3 General Purpose Timers"); + return (0); +} + +static int +omap3_gptimer_attach(device_t dev) +{ + struct omap3_gptimer_softc *sc = device_get_softc(dev); + struct omap3_gptimer *timer; + char name[32]; + unsigned int n = 0; + int rid; // resource id for device, unique + uint32_t rev; + u_int oldirqstate; + unsigned int timer_freq; + + + // Setup the basics + sc->sc_dev = dev; + sc->sc_tick_timer = NULL; + + // Go through and configure each individual timer */ + for (n = 0; n < OMAP3_NUM_TIMERS; n++) { + + timer = &sc->sc_timers[n]; + + /* First try and get the register addresses, if this fails we assume + * there are no more timers. + */ + rid = n; + timer->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, + RF_ACTIVE); + if (timer->mem_res == NULL) + break; + + /* Next try and get the interrupt resource, this is not fatal */ + rid = n; + timer->irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, + RF_ACTIVE | RF_SHAREABLE); + + // I decided to delete support for OMAP4 timers from the original code - aleek + rev = omap_gptimer_readl(timer, OMAP_GPT_TIDR); + switch (rev) { + case 0x00000013: /* OMAP3 without 1ms generation */ + case 0x00000015: + case 0x00000021: /* OMAP3 with 1ms generation */ + timer->profile = OMAP_GPTIMER_PROFILE_OMAP3; + break; + break; + default: + timer->profile = OMAP_GPTIMER_PROFILE_UNKNOWN; + break; + } + + if (timer->profile == OMAP_GPTIMER_PROFILE_UNKNOWN) { + device_printf(dev, "Error: failed to determine the type of " + "GPTIMER%d, ignoring timer (rev: 0x%08x)\n", (n + 1), + rev); + break; + } + /* Set the clock source for the timer, this is just a one to one + * mapping of the clock id to timer, i.e. n=0 => GPTIMER1_CLK. + */ + timer->source = (GPTIMER1_CLK + n); + + /* Finally mark the timer as available */ + timer->flags = OMAP_GPTIMER_AVAILABLE_FLAG; + } + + /* Store the number of timers installed */ + sc->sc_num_timers = n; + + /* Store the timer structure globally - this driver should never be unloaded */ + g_omap_gptimer_sc = sc; + + /* setup GPTIMER10 for system ticks, and GPTIMER11 for general purpose counter */ + + oldirqstate = disable_interrupts(I32_bit); + + /* Number of microseconds between interrupts */ + tick = 1000000 / hz; + + /* Next setup one of the timers to be the system tick timer */ + if (omap3_gptimer_activate(TICKTIMER_GPTIMER, OMAP_GPTIMER_PERIODIC_FLAG, + tick, NULL, NULL)) { + panic("Error: failed to activate system tick timer\n"); + } + + /* Setup an interrupt filter for the timer */ + if (omap_gptimer_set_intr_filter(TICKTIMER_GPTIMER, omap3_timer_tick_intr)) + panic("Error: failed to start system tick timer\n"); + + /* Lastly start the tick timer */ + if (omap_gptimer_start(TICKTIMER_GPTIMER)) + panic("Error: failed to start system tick timer\n"); + + omap3_gptimer_get_freq(TICKTIMER_GPTIMER, &timer_freq); + printf("tick: timer_freq = %u\n", timer_freq); + + + + /* Setup another timer to be the timecounter */ + if (omap3_gptimer_activate(TIMECOUNT_GPTIMER, OMAP_GPTIMER_PERIODIC_FLAG, 0, + NULL, NULL)) { + printf("Error: failed to activate system tick timer\n"); + } else if (omap_gptimer_start(TIMECOUNT_GPTIMER)) { + printf("Error: failed to start system tick timer\n"); + } + + /* Save the system clock speed */ + omap3_gptimer_get_freq(TIMECOUNT_GPTIMER, &timer_freq); + g_omap3_timecounter.tc_frequency = timer_freq; + + /* Setup the time counter */ + tc_init(&g_omap3_timecounter); + + /* Calibrate the delay loop */ + omap3_calibrate_delay_loop(&g_omap3_timecounter); + + /* Restore interrupt state */ + restore_interrupts(oldirqstate); + +} + +static device_method_t g_omap_gptimer_methods[] = { + DEVMETHOD(device_probe, omap_gptimer_probe), + DEVMETHOD(device_attach, omap_gptimer_attach), + {0, 0}, +}; + +static driver_t g_omap_gptimer_driver = { + "omap_gptimer", + g_omap_gptimer_methods, + sizeof(struct omap_gptimer_softc), +}; +static devclass_t g_omap_gptimer_devclass; + +DRIVER_MODULE(omap_gptimer, omap, g_omap_gptimer_driver, g_omap_gptimer_devclass, 0, 0); +MODULE_DEPEND(omap_gptimer, ti_prcm, 1, 1, 1); + +} Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_prcm.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_prcm.c Tue Jun 12 11:08:51 2012 (r237542) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/ti_prcm.c Tue Jun 12 12:24:55 2012 (r237543) @@ -1,6 +1,6 @@ /* * Copyright (c) 2010 - * Ben Gray . + * Ben Gray . * All rights reserved. * * Redistribution and use in source and binary forms, with or without From owner-svn-soc-all@FreeBSD.ORG Tue Jun 12 13:46:57 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id A93091065674 for ; Tue, 12 Jun 2012 13:46:55 +0000 (UTC) (envelope-from gpf@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 12 Jun 2012 13:46:55 +0000 Date: Tue, 12 Jun 2012 13:46:55 +0000 From: gpf@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120612134655.A93091065674@hub.freebsd.org> Cc: Subject: socsvn commit: r237547 - soc2012/gpf/pefs_head/head/sys/sys X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 13:46:57 -0000 Author: gpf Date: Tue Jun 12 13:46:54 2012 New Revision: 237547 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237547 Log: mount.h again Replaced: soc2012/gpf/pefs_head/head/sys/sys/mount.h Added: soc2012/gpf/pefs_head/head/sys/sys/mount.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/gpf/pefs_head/head/sys/sys/mount.h Tue Jun 12 13:46:54 2012 (r237547) @@ -0,0 +1,854 @@ +/*- + * Copyright (c) 1989, 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)mount.h 8.21 (Berkeley) 5/20/95 + * $FreeBSD: soc2012/gpf/pefs_head/head/sys/sys/mount.h 234765 2012-04-20 06:50:44Z mckusick $ + */ + +#ifndef _SYS_MOUNT_H_ +#define _SYS_MOUNT_H_ + +#include +#include +#ifdef _KERNEL +#include +#include +#include +#endif + +/* + * NOTE: When changing statfs structure, mount structure, MNT_* flags or + * MNTK_* flags also update DDB show mount command in vfs_subr.c. + */ + +typedef struct fsid { int32_t val[2]; } fsid_t; /* filesystem id type */ + +/* + * File identifier. + * These are unique per filesystem on a single machine. + */ +#define MAXFIDSZ 16 + +struct fid { + u_short fid_len; /* length of data in bytes */ + u_short fid_data0; /* force longword alignment */ + char fid_data[MAXFIDSZ]; /* data (variable length) */ +}; + +/* + * filesystem statistics + */ +#define MFSNAMELEN 16 /* length of type name including null */ +#define MNAMELEN 88 /* size of on/from name bufs */ +#define STATFS_VERSION 0x20030518 /* current version number */ +struct statfs { + uint32_t f_version; /* structure version number */ + uint32_t f_type; /* type of filesystem */ + uint64_t f_flags; /* copy of mount exported flags */ + uint64_t f_bsize; /* filesystem fragment size */ + uint64_t f_iosize; /* optimal transfer block size */ + uint64_t f_blocks; /* total data blocks in filesystem */ + uint64_t f_bfree; /* free blocks in filesystem */ + int64_t f_bavail; /* free blocks avail to non-superuser */ + uint64_t f_files; /* total file nodes in filesystem */ + int64_t f_ffree; /* free nodes avail to non-superuser */ + uint64_t f_syncwrites; /* count of sync writes since mount */ + uint64_t f_asyncwrites; /* count of async writes since mount */ + uint64_t f_syncreads; /* count of sync reads since mount */ + uint64_t f_asyncreads; /* count of async reads since mount */ + uint64_t f_spare[10]; /* unused spare */ + uint32_t f_namemax; /* maximum filename length */ + uid_t f_owner; /* user that mounted the filesystem */ + fsid_t f_fsid; /* filesystem id */ + char f_charspare[80]; /* spare string space */ + char f_fstypename[MFSNAMELEN]; /* filesystem type name */ + char f_mntfromname[MNAMELEN]; /* mounted filesystem */ + char f_mntonname[MNAMELEN]; /* directory on which mounted */ +}; + +#ifdef _KERNEL +#define OMFSNAMELEN 16 /* length of fs type name, including null */ +#define OMNAMELEN (88 - 2 * sizeof(long)) /* size of on/from name bufs */ + +/* XXX getfsstat.2 is out of date with write and read counter changes here. */ +/* XXX statfs.2 is out of date with read counter changes here. */ +struct ostatfs { + long f_spare2; /* placeholder */ + long f_bsize; /* fundamental filesystem block size */ + long f_iosize; /* optimal transfer block size */ + long f_blocks; /* total data blocks in filesystem */ + long f_bfree; /* free blocks in fs */ + long f_bavail; /* free blocks avail to non-superuser */ + long f_files; /* total file nodes in filesystem */ + long f_ffree; /* free file nodes in fs */ + fsid_t f_fsid; /* filesystem id */ + uid_t f_owner; /* user that mounted the filesystem */ + int f_type; /* type of filesystem */ + int f_flags; /* copy of mount exported flags */ + long f_syncwrites; /* count of sync writes since mount */ + long f_asyncwrites; /* count of async writes since mount */ + char f_fstypename[OMFSNAMELEN]; /* fs type name */ + char f_mntonname[OMNAMELEN]; /* directory on which mounted */ + long f_syncreads; /* count of sync reads since mount */ + long f_asyncreads; /* count of async reads since mount */ + short f_spares1; /* unused spare */ + char f_mntfromname[OMNAMELEN];/* mounted filesystem */ + short f_spares2; /* unused spare */ + /* + * XXX on machines where longs are aligned to 8-byte boundaries, there + * is an unnamed int32_t here. This spare was after the apparent end + * of the struct until we bit off the read counters from f_mntonname. + */ + long f_spare[2]; /* unused spare */ +}; + +TAILQ_HEAD(vnodelst, vnode); + +/* Mount options list */ +TAILQ_HEAD(vfsoptlist, vfsopt); +struct vfsopt { + TAILQ_ENTRY(vfsopt) link; + char *name; + void *value; + int len; + int pos; + int seen; +}; + +/* + * Structure per mounted filesystem. Each mounted filesystem has an + * array of operations and an instance record. The filesystems are + * put on a doubly linked list. + * + * Lock reference: + * m - mountlist_mtx + * i - interlock + * + * Unmarked fields are considered stable as long as a ref is held. + * + */ +struct mount { + struct mtx mnt_mtx; /* mount structure interlock */ + int mnt_gen; /* struct mount generation */ +#define mnt_startzero mnt_list + TAILQ_ENTRY(mount) mnt_list; /* (m) mount list */ + struct vfsops *mnt_op; /* operations on fs */ + struct vfsconf *mnt_vfc; /* configuration info */ + struct vnode *mnt_vnodecovered; /* vnode we mounted on */ + struct vnode *mnt_syncer; /* syncer vnode */ + int mnt_ref; /* (i) Reference count */ + struct vnodelst mnt_nvnodelist; /* (i) list of vnodes */ + int mnt_nvnodelistsize; /* (i) # of vnodes */ + struct vnodelst mnt_activevnodelist; /* (i) list of active vnodes */ + int mnt_activevnodelistsize;/* (i) # of active vnodes */ + int mnt_writeopcount; /* (i) write syscalls pending */ + int mnt_kern_flag; /* (i) kernel only flags */ + uint64_t mnt_flag; /* (i) flags shared with user */ + struct vfsoptlist *mnt_opt; /* current mount options */ + struct vfsoptlist *mnt_optnew; /* new options passed to fs */ + int mnt_maxsymlinklen; /* max size of short symlink */ + struct statfs mnt_stat; /* cache of filesystem stats */ + struct ucred *mnt_cred; /* credentials of mounter */ + void * mnt_data; /* private data */ + time_t mnt_time; /* last time written*/ + int mnt_iosize_max; /* max size for clusters, etc */ + struct netexport *mnt_export; /* export list */ + struct label *mnt_label; /* MAC label for the fs */ + u_int mnt_hashseed; /* Random seed for vfs_hash */ + int mnt_lockref; /* (i) Lock reference count */ + int mnt_secondary_writes; /* (i) # of secondary writes */ + int mnt_secondary_accwrites;/* (i) secondary wr. starts */ + struct thread *mnt_susp_owner; /* (i) thread owning suspension */ +#define mnt_endzero mnt_gjprovider + char *mnt_gjprovider; /* gjournal provider name */ + struct lock mnt_explock; /* vfs_export walkers lock */ +}; + +/* + * Definitions for MNT_VNODE_FOREACH_ALL. + */ +struct vnode *__mnt_vnode_next_all(struct vnode **mvp, struct mount *mp); +struct vnode *__mnt_vnode_first_all(struct vnode **mvp, struct mount *mp); +void __mnt_vnode_markerfree_all(struct vnode **mvp, struct mount *mp); + +#define MNT_VNODE_FOREACH_ALL(vp, mp, mvp) \ + for (vp = __mnt_vnode_first_all(&(mvp), (mp)); \ + (vp) != NULL; vp = __mnt_vnode_next_all(&(mvp), (mp))) + +#define MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp) \ + do { \ + MNT_ILOCK(mp); \ + __mnt_vnode_markerfree_all(&(mvp), (mp)); \ + /* MNT_IUNLOCK(mp); -- done in above function */ \ + mtx_assert(MNT_MTX(mp), MA_NOTOWNED); \ + } while (0) + +/* + * Definitions for MNT_VNODE_FOREACH_ACTIVE. + */ +struct vnode *__mnt_vnode_next_active(struct vnode **mvp, struct mount *mp); +struct vnode *__mnt_vnode_first_active(struct vnode **mvp, struct mount *mp); +void __mnt_vnode_markerfree_active(struct vnode **mvp, struct mount *); + +#define MNT_VNODE_FOREACH_ACTIVE(vp, mp, mvp) \ + for (vp = __mnt_vnode_first_active(&(mvp), (mp)); \ + (vp) != NULL; vp = __mnt_vnode_next_active(&(mvp), (mp))) + +#define MNT_VNODE_FOREACH_ACTIVE_ABORT(mp, mvp) \ + do { \ + MNT_ILOCK(mp); \ + __mnt_vnode_markerfree_active(&(mvp), (mp)); \ + /* MNT_IUNLOCK(mp); -- done in above function */ \ + mtx_assert(MNT_MTX(mp), MA_NOTOWNED); \ + } while (0) + +/* + * Definitions for MNT_VNODE_FOREACH. + * + * This interface has been deprecated in favor of MNT_VNODE_FOREACH_ALL. + */ +struct vnode *__mnt_vnode_next(struct vnode **mvp, struct mount *mp); +struct vnode *__mnt_vnode_first(struct vnode **mvp, struct mount *mp); +void __mnt_vnode_markerfree(struct vnode **mvp, struct mount *mp); + +#define MNT_VNODE_FOREACH(vp, mp, mvp) \ + for (vp = __mnt_vnode_first(&(mvp), (mp)); \ + (vp) != NULL; vp = __mnt_vnode_next(&(mvp), (mp))) + +#define MNT_VNODE_FOREACH_ABORT_ILOCKED(mp, mvp) \ + __mnt_vnode_markerfree(&(mvp), (mp)) + +#define MNT_VNODE_FOREACH_ABORT(mp, mvp) \ + do { \ + MNT_ILOCK(mp); \ + MNT_VNODE_FOREACH_ABORT_ILOCKED(mp, mvp); \ + MNT_IUNLOCK(mp); \ + } while (0) + +#define MNT_ILOCK(mp) mtx_lock(&(mp)->mnt_mtx) +#define MNT_ITRYLOCK(mp) mtx_trylock(&(mp)->mnt_mtx) +#define MNT_IUNLOCK(mp) mtx_unlock(&(mp)->mnt_mtx) +#define MNT_MTX(mp) (&(mp)->mnt_mtx) +#define MNT_REF(mp) (mp)->mnt_ref++ +#define MNT_REL(mp) do { \ + KASSERT((mp)->mnt_ref > 0, ("negative mnt_ref")); \ + (mp)->mnt_ref--; \ + if ((mp)->mnt_ref == 0) \ + wakeup((mp)); \ +} while (0) + +#endif /* _KERNEL */ + +/* + * User specifiable flags, stored in mnt_flag. + */ +#define MNT_RDONLY 0x0000000000000001ULL /* read only filesystem */ +#define MNT_SYNCHRONOUS 0x0000000000000002ULL /* fs written synchronously */ +#define MNT_NOEXEC 0x0000000000000004ULL /* can't exec from filesystem */ +#define MNT_NOSUID 0x0000000000000008ULL /* don't honor setuid fs bits */ +#define MNT_NFS4ACLS 0x0000000000000010ULL /* enable NFS version 4 ACLs */ +#define MNT_UNION 0x0000000000000020ULL /* union with underlying fs */ +#define MNT_ASYNC 0x0000000000000040ULL /* fs written asynchronously */ +#define MNT_SUIDDIR 0x0000000000100000ULL /* special SUID dir handling */ +#define MNT_SOFTDEP 0x0000000000200000ULL /* using soft updates */ +#define MNT_NOSYMFOLLOW 0x0000000000400000ULL /* do not follow symlinks */ +#define MNT_GJOURNAL 0x0000000002000000ULL /* GEOM journal support enabled */ +#define MNT_MULTILABEL 0x0000000004000000ULL /* MAC support for objects */ +#define MNT_ACLS 0x0000000008000000ULL /* ACL support enabled */ +#define MNT_NOATIME 0x0000000010000000ULL /* dont update file access time */ +#define MNT_NOCLUSTERR 0x0000000040000000ULL /* disable cluster read */ +#define MNT_NOCLUSTERW 0x0000000080000000ULL /* disable cluster write */ +#define MNT_SUJ 0x0000000100000000ULL /* using journaled soft updates */ + +/* + * NFS export related mount flags. + */ +#define MNT_EXRDONLY 0x0000000000000080ULL /* exported read only */ +#define MNT_EXPORTED 0x0000000000000100ULL /* filesystem is exported */ +#define MNT_DEFEXPORTED 0x0000000000000200ULL /* exported to the world */ +#define MNT_EXPORTANON 0x0000000000000400ULL /* anon uid mapping for all */ +#define MNT_EXKERB 0x0000000000000800ULL /* exported with Kerberos */ +#define MNT_EXPUBLIC 0x0000000020000000ULL /* public export (WebNFS) */ + +/* + * Flags set by internal operations, + * but visible to the user. + * XXX some of these are not quite right.. (I've never seen the root flag set) + */ +#define MNT_LOCAL 0x0000000000001000ULL /* filesystem is stored locally */ +#define MNT_QUOTA 0x0000000000002000ULL /* quotas are enabled on fs */ +#define MNT_ROOTFS 0x0000000000004000ULL /* identifies the root fs */ +#define MNT_USER 0x0000000000008000ULL /* mounted by a user */ +#define MNT_IGNORE 0x0000000000800000ULL /* do not show entry in df */ + +/* + * Mask of flags that are visible to statfs(). + * XXX I think that this could now become (~(MNT_CMDFLAGS)) + * but the 'mount' program may need changing to handle this. + */ +#define MNT_VISFLAGMASK (MNT_RDONLY | MNT_SYNCHRONOUS | MNT_NOEXEC | \ + MNT_NOSUID | MNT_UNION | MNT_SUJ | \ + MNT_ASYNC | MNT_EXRDONLY | MNT_EXPORTED | \ + MNT_DEFEXPORTED | MNT_EXPORTANON| MNT_EXKERB | \ + MNT_LOCAL | MNT_USER | MNT_QUOTA | \ + MNT_ROOTFS | MNT_NOATIME | MNT_NOCLUSTERR| \ + MNT_NOCLUSTERW | MNT_SUIDDIR | MNT_SOFTDEP | \ + MNT_IGNORE | MNT_EXPUBLIC | MNT_NOSYMFOLLOW | \ + MNT_GJOURNAL | MNT_MULTILABEL | MNT_ACLS | \ + MNT_NFS4ACLS) + +/* Mask of flags that can be updated. */ +#define MNT_UPDATEMASK (MNT_NOSUID | MNT_NOEXEC | \ + MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC | \ + MNT_NOATIME | \ + MNT_NOSYMFOLLOW | MNT_IGNORE | \ + MNT_NOCLUSTERR | MNT_NOCLUSTERW | MNT_SUIDDIR | \ + MNT_ACLS | MNT_USER | MNT_NFS4ACLS) + +/* + * External filesystem command modifier flags. + * Unmount can use the MNT_FORCE flag. + * XXX: These are not STATES and really should be somewhere else. + * XXX: MNT_BYFSID collides with MNT_ACLS, but because MNT_ACLS is only used for + * mount(2) and MNT_BYFSID is only used for unmount(2) it's harmless. + */ +#define MNT_UPDATE 0x0000000000010000ULL /* not real mount, just update */ +#define MNT_DELEXPORT 0x0000000000020000ULL /* delete export host lists */ +#define MNT_RELOAD 0x0000000000040000ULL /* reload filesystem data */ +#define MNT_FORCE 0x0000000000080000ULL /* force unmount or readonly */ +#define MNT_SNAPSHOT 0x0000000001000000ULL /* snapshot the filesystem */ +#define MNT_BYFSID 0x0000000008000000ULL /* specify filesystem by ID. */ +#define MNT_CMDFLAGS (MNT_UPDATE | MNT_DELEXPORT | MNT_RELOAD | \ + MNT_FORCE | MNT_SNAPSHOT | MNT_BYFSID) +/* + * Internal filesystem control flags stored in mnt_kern_flag. + * + * MNTK_UNMOUNT locks the mount entry so that name lookup cannot proceed + * past the mount point. This keeps the subtree stable during mounts + * and unmounts. + * + * MNTK_UNMOUNTF permits filesystems to detect a forced unmount while + * dounmount() is still waiting to lock the mountpoint. This allows + * the filesystem to cancel operations that might otherwise deadlock + * with the unmount attempt (used by NFS). + * + * MNTK_NOINSMNTQ is strict subset of MNTK_UNMOUNT. They are separated + * to allow for failed unmount attempt to restore the syncer vnode for + * the mount. + */ +#define MNTK_UNMOUNTF 0x00000001 /* forced unmount in progress */ +#define MNTK_ASYNC 0x00000002 /* filtered async flag */ +#define MNTK_SOFTDEP 0x00000004 /* async disabled by softdep */ +#define MNTK_NOINSMNTQ 0x00000008 /* insmntque is not allowed */ +#define MNTK_DRAINING 0x00000010 /* lock draining is happening */ +#define MNTK_REFEXPIRE 0x00000020 /* refcount expiring is happening */ +#define MNTK_EXTENDED_SHARED 0x00000040 /* Allow shared locking for more ops */ +#define MNTK_SHARED_WRITES 0x00000080 /* Allow shared locking for writes */ +#define MNTK_NOASYNC 0x00800000 /* disable async */ +#define MNTK_UNMOUNT 0x01000000 /* unmount in progress */ +#define MNTK_MWAIT 0x02000000 /* waiting for unmount to finish */ +#define MNTK_SUSPEND 0x08000000 /* request write suspension */ +#define MNTK_SUSPEND2 0x04000000 /* block secondary writes */ +#define MNTK_SUSPENDED 0x10000000 /* write operations are suspended */ +#define MNTK_MPSAFE 0x20000000 /* Filesystem is MPSAFE. */ +#define MNTK_LOOKUP_SHARED 0x40000000 /* FS supports shared lock lookups */ +#define MNTK_NOKNOTE 0x80000000 /* Don't send KNOTEs from VOP hooks */ + +#define MNT_SHARED_WRITES(mp) (((mp) != NULL) && \ + ((mp)->mnt_kern_flag & MNTK_SHARED_WRITES)) + +/* + * Sysctl CTL_VFS definitions. + * + * Second level identifier specifies which filesystem. Second level + * identifier VFS_VFSCONF returns information about all filesystems. + * Second level identifier VFS_GENERIC is non-terminal. + */ +#define VFS_VFSCONF 0 /* get configured filesystems */ +#define VFS_GENERIC 0 /* generic filesystem information */ +/* + * Third level identifiers for VFS_GENERIC are given below; third + * level identifiers for specific filesystems are given in their + * mount specific header files. + */ +#define VFS_MAXTYPENUM 1 /* int: highest defined filesystem type */ +#define VFS_CONF 2 /* struct: vfsconf for filesystem given + as next argument */ + +/* + * Flags for various system call interfaces. + * + * waitfor flags to vfs_sync() and getfsstat() + */ +#define MNT_WAIT 1 /* synchronously wait for I/O to complete */ +#define MNT_NOWAIT 2 /* start all I/O, but do not wait for it */ +#define MNT_LAZY 3 /* push data not written by filesystem syncer */ +#define MNT_SUSPEND 4 /* Suspend file system after sync */ + +/* + * Generic file handle + */ +struct fhandle { + fsid_t fh_fsid; /* Filesystem id of mount point */ + struct fid fh_fid; /* Filesys specific id */ +}; +typedef struct fhandle fhandle_t; + +/* + * Old export arguments without security flavor list + */ +struct oexport_args { + int ex_flags; /* export related flags */ + uid_t ex_root; /* mapping for root uid */ + struct xucred ex_anon; /* mapping for anonymous user */ + struct sockaddr *ex_addr; /* net address to which exported */ + u_char ex_addrlen; /* and the net address length */ + struct sockaddr *ex_mask; /* mask of valid bits in saddr */ + u_char ex_masklen; /* and the smask length */ + char *ex_indexfile; /* index file for WebNFS URLs */ +}; + +/* + * Export arguments for local filesystem mount calls. + */ +#define MAXSECFLAVORS 5 +struct export_args { + int ex_flags; /* export related flags */ + uid_t ex_root; /* mapping for root uid */ + struct xucred ex_anon; /* mapping for anonymous user */ + struct sockaddr *ex_addr; /* net address to which exported */ + u_char ex_addrlen; /* and the net address length */ + struct sockaddr *ex_mask; /* mask of valid bits in saddr */ + u_char ex_masklen; /* and the smask length */ + char *ex_indexfile; /* index file for WebNFS URLs */ + int ex_numsecflavors; /* security flavor count */ + int ex_secflavors[MAXSECFLAVORS]; /* list of security flavors */ +}; + +/* + * Structure holding information for a publicly exported filesystem + * (WebNFS). Currently the specs allow just for one such filesystem. + */ +struct nfs_public { + int np_valid; /* Do we hold valid information */ + fhandle_t np_handle; /* Filehandle for pub fs (internal) */ + struct mount *np_mount; /* Mountpoint of exported fs */ + char *np_index; /* Index file */ +}; + +/* + * Filesystem configuration information. One of these exists for each + * type of filesystem supported by the kernel. These are searched at + * mount time to identify the requested filesystem. + * + * XXX: Never change the first two arguments! + */ +struct vfsconf { + u_int vfc_version; /* ABI version number */ + char vfc_name[MFSNAMELEN]; /* filesystem type name */ + struct vfsops *vfc_vfsops; /* filesystem operations vector */ + int vfc_typenum; /* historic filesystem type number */ + int vfc_refcount; /* number mounted of this type */ + int vfc_flags; /* permanent flags */ + struct vfsoptdecl *vfc_opts; /* mount options */ + TAILQ_ENTRY(vfsconf) vfc_list; /* list of vfscons */ +}; + +/* Userland version of the struct vfsconf. */ +struct xvfsconf { + struct vfsops *vfc_vfsops; /* filesystem operations vector */ + char vfc_name[MFSNAMELEN]; /* filesystem type name */ + int vfc_typenum; /* historic filesystem type number */ + int vfc_refcount; /* number mounted of this type */ + int vfc_flags; /* permanent flags */ + struct vfsconf *vfc_next; /* next in list */ +}; + +#ifndef BURN_BRIDGES +struct ovfsconf { + void *vfc_vfsops; + char vfc_name[32]; + int vfc_index; + int vfc_refcount; + int vfc_flags; +}; +#endif + +/* + * NB: these flags refer to IMPLEMENTATION properties, not properties of + * any actual mounts; i.e., it does not make sense to change the flags. + */ +#define VFCF_STATIC 0x00010000 /* statically compiled into kernel */ +#define VFCF_NETWORK 0x00020000 /* may get data over the network */ +#define VFCF_READONLY 0x00040000 /* writes are not implemented */ +#define VFCF_SYNTHETIC 0x00080000 /* data does not represent real files */ +#define VFCF_LOOPBACK 0x00100000 /* aliases some other mounted FS */ +#define VFCF_UNICODE 0x00200000 /* stores file names as Unicode */ +#define VFCF_JAIL 0x00400000 /* can be mounted from within a jail */ +#define VFCF_DELEGADMIN 0x00800000 /* supports delegated administration */ + +typedef uint32_t fsctlop_t; + +struct vfsidctl { + int vc_vers; /* should be VFSIDCTL_VERS1 (below) */ + fsid_t vc_fsid; /* fsid to operate on */ + char vc_fstypename[MFSNAMELEN]; + /* type of fs 'nfs' or '*' */ + fsctlop_t vc_op; /* operation VFS_CTL_* (below) */ + void *vc_ptr; /* pointer to data structure */ + size_t vc_len; /* sizeof said structure */ + u_int32_t vc_spare[12]; /* spare (must be zero) */ +}; + +/* vfsidctl API version. */ +#define VFS_CTL_VERS1 0x01 + +/* + * New style VFS sysctls, do not reuse/conflict with the namespace for + * private sysctls. + * All "global" sysctl ops have the 33rd bit set: + * 0x...1.... + * Private sysctl ops should have the 33rd bit unset. + */ +#define VFS_CTL_QUERY 0x00010001 /* anything wrong? (vfsquery) */ +#define VFS_CTL_TIMEO 0x00010002 /* set timeout for vfs notification */ +#define VFS_CTL_NOLOCKS 0x00010003 /* disable file locking */ + +struct vfsquery { + u_int32_t vq_flags; + u_int32_t vq_spare[31]; +}; + +/* vfsquery flags */ +#define VQ_NOTRESP 0x0001 /* server down */ +#define VQ_NEEDAUTH 0x0002 /* server bad auth */ +#define VQ_LOWDISK 0x0004 /* we're low on space */ +#define VQ_MOUNT 0x0008 /* new filesystem arrived */ +#define VQ_UNMOUNT 0x0010 /* filesystem has left */ +#define VQ_DEAD 0x0020 /* filesystem is dead, needs force unmount */ +#define VQ_ASSIST 0x0040 /* filesystem needs assistance from external + program */ +#define VQ_NOTRESPLOCK 0x0080 /* server lockd down */ +#define VQ_FLAG0100 0x0100 /* placeholder */ +#define VQ_FLAG0200 0x0200 /* placeholder */ +#define VQ_FLAG0400 0x0400 /* placeholder */ +#define VQ_FLAG0800 0x0800 /* placeholder */ +#define VQ_FLAG1000 0x1000 /* placeholder */ +#define VQ_FLAG2000 0x2000 /* placeholder */ +#define VQ_FLAG4000 0x4000 /* placeholder */ +#define VQ_FLAG8000 0x8000 /* placeholder */ + +#ifdef _KERNEL +/* Point a sysctl request at a vfsidctl's data. */ +#define VCTLTOREQ(vc, req) \ + do { \ + (req)->newptr = (vc)->vc_ptr; \ + (req)->newlen = (vc)->vc_len; \ + (req)->newidx = 0; \ + } while (0) +#endif + +struct iovec; +struct uio; + +#ifdef _KERNEL + +/* + * vfs_busy specific flags and mask. + */ +#define MBF_NOWAIT 0x01 +#define MBF_MNTLSTLOCK 0x02 +#define MBF_MASK (MBF_NOWAIT | MBF_MNTLSTLOCK) + +#ifdef MALLOC_DECLARE +MALLOC_DECLARE(M_MOUNT); +#endif +extern int maxvfsconf; /* highest defined filesystem type */ +extern int nfs_mount_type; /* vfc_typenum for nfs, or -1 */ + +TAILQ_HEAD(vfsconfhead, vfsconf); +extern struct vfsconfhead vfsconf; + +/* + * Operations supported on mounted filesystem. + */ +struct mount_args; +struct nameidata; +struct sysctl_req; +struct mntarg; + +typedef int vfs_cmount_t(struct mntarg *ma, void *data, uint64_t flags); +typedef int vfs_unmount_t(struct mount *mp, int mntflags); +typedef int vfs_root_t(struct mount *mp, int flags, struct vnode **vpp); +typedef int vfs_quotactl_t(struct mount *mp, int cmds, uid_t uid, void *arg); +typedef int vfs_statfs_t(struct mount *mp, struct statfs *sbp); +typedef int vfs_sync_t(struct mount *mp, int waitfor); +typedef int vfs_vget_t(struct mount *mp, ino_t ino, int flags, + struct vnode **vpp); +typedef int vfs_fhtovp_t(struct mount *mp, struct fid *fhp, + int flags, struct vnode **vpp); +typedef int vfs_checkexp_t(struct mount *mp, struct sockaddr *nam, + int *extflagsp, struct ucred **credanonp, + int *numsecflavors, int **secflavors); +typedef int vfs_init_t(struct vfsconf *); +typedef int vfs_uninit_t(struct vfsconf *); +typedef int vfs_extattrctl_t(struct mount *mp, int cmd, + struct vnode *filename_vp, int attrnamespace, + const char *attrname); +typedef int vfs_mount_t(struct mount *mp); +typedef int vfs_sysctl_t(struct mount *mp, fsctlop_t op, + struct sysctl_req *req); +typedef void vfs_susp_clean_t(struct mount *mp); + +struct vfsops { + vfs_mount_t *vfs_mount; + vfs_cmount_t *vfs_cmount; + vfs_unmount_t *vfs_unmount; + vfs_root_t *vfs_root; + vfs_quotactl_t *vfs_quotactl; + vfs_statfs_t *vfs_statfs; + vfs_sync_t *vfs_sync; + vfs_vget_t *vfs_vget; + vfs_fhtovp_t *vfs_fhtovp; + vfs_checkexp_t *vfs_checkexp; + vfs_init_t *vfs_init; + vfs_uninit_t *vfs_uninit; + vfs_extattrctl_t *vfs_extattrctl; + vfs_sysctl_t *vfs_sysctl; + vfs_susp_clean_t *vfs_susp_clean; +}; + +vfs_statfs_t __vfs_statfs; + +#define VFS_MOUNT(MP) (*(MP)->mnt_op->vfs_mount)(MP) +#define VFS_UNMOUNT(MP, FORCE) (*(MP)->mnt_op->vfs_unmount)(MP, FORCE) +#define VFS_ROOT(MP, FLAGS, VPP) \ + (*(MP)->mnt_op->vfs_root)(MP, FLAGS, VPP) +#define VFS_QUOTACTL(MP, C, U, A) \ + (*(MP)->mnt_op->vfs_quotactl)(MP, C, U, A) +#define VFS_STATFS(MP, SBP) __vfs_statfs((MP), (SBP)) +#define VFS_SYNC(MP, WAIT) (*(MP)->mnt_op->vfs_sync)(MP, WAIT) +#define VFS_VGET(MP, INO, FLAGS, VPP) \ + (*(MP)->mnt_op->vfs_vget)(MP, INO, FLAGS, VPP) +#define VFS_FHTOVP(MP, FIDP, FLAGS, VPP) \ + (*(MP)->mnt_op->vfs_fhtovp)(MP, FIDP, FLAGS, VPP) +#define VFS_CHECKEXP(MP, NAM, EXFLG, CRED, NUMSEC, SEC) \ + (*(MP)->mnt_op->vfs_checkexp)(MP, NAM, EXFLG, CRED, NUMSEC, SEC) +#define VFS_EXTATTRCTL(MP, C, FN, NS, N) \ + (*(MP)->mnt_op->vfs_extattrctl)(MP, C, FN, NS, N) +#define VFS_SYSCTL(MP, OP, REQ) \ + (*(MP)->mnt_op->vfs_sysctl)(MP, OP, REQ) +#define VFS_SUSP_CLEAN(MP) \ + ({if (*(MP)->mnt_op->vfs_susp_clean != NULL) \ + (*(MP)->mnt_op->vfs_susp_clean)(MP); }) + +#define VFS_NEEDSGIANT_(MP) \ + ((MP) != NULL && ((MP)->mnt_kern_flag & MNTK_MPSAFE) == 0) + +#define VFS_NEEDSGIANT(MP) __extension__ \ +({ \ + struct mount *_mp; \ + _mp = (MP); \ + VFS_NEEDSGIANT_(_mp); \ +}) + +#define VFS_LOCK_GIANT(MP) __extension__ \ +({ \ + int _locked; \ + struct mount *_mp; \ + _mp = (MP); \ + if (VFS_NEEDSGIANT_(_mp)) { \ + mtx_lock(&Giant); \ + _locked = 1; \ + } else \ + _locked = 0; \ + _locked; \ +}) +#define VFS_UNLOCK_GIANT(locked) do \ +{ \ + if ((locked)) \ + mtx_unlock(&Giant); \ +} while (0) +#define VFS_ASSERT_GIANT(MP) do \ +{ \ + struct mount *_mp; \ + _mp = (MP); \ + if (VFS_NEEDSGIANT_(_mp)) \ + mtx_assert(&Giant, MA_OWNED); \ +} while (0) + +#define VFS_KNOTE_LOCKED(vp, hint) do \ +{ \ + if (((vp)->v_vflag & VV_NOKNOTE) == 0) \ + VN_KNOTE((vp), (hint), KNF_LISTLOCKED); \ +} while (0) + +#define VFS_KNOTE_UNLOCKED(vp, hint) do \ +{ \ + if (((vp)->v_vflag & VV_NOKNOTE) == 0) \ + VN_KNOTE((vp), (hint), 0); \ +} while (0) + +#include + +/* + * Version numbers. + */ +#define VFS_VERSION_00 0x19660120 +#define VFS_VERSION VFS_VERSION_00 + +#define VFS_SET(vfsops, fsname, flags) \ + static struct vfsconf fsname ## _vfsconf = { \ + .vfc_version = VFS_VERSION, \ + .vfc_name = #fsname, \ + .vfc_vfsops = &vfsops, \ + .vfc_typenum = -1, \ + .vfc_flags = flags, \ + }; \ + static moduledata_t fsname ## _mod = { \ + #fsname, \ + vfs_modevent, \ + & fsname ## _vfsconf \ + }; \ + DECLARE_MODULE(fsname, fsname ## _mod, SI_SUB_VFS, SI_ORDER_MIDDLE) + +extern char *mountrootfsname; + +/* + * exported vnode operations + */ + +int dounmount(struct mount *, int, struct thread *); + +int kernel_mount(struct mntarg *ma, uint64_t flags); +int kernel_vmount(int flags, ...); +struct mntarg *mount_arg(struct mntarg *ma, const char *name, const void *val, int len); +struct mntarg *mount_argb(struct mntarg *ma, int flag, const char *name); +struct mntarg *mount_argf(struct mntarg *ma, const char *name, const char *fmt, ...); +struct mntarg *mount_argsu(struct mntarg *ma, const char *name, const void *val, int len); +void statfs_scale_blocks(struct statfs *sf, long max_size); +struct vfsconf *vfs_byname(const char *); +struct vfsconf *vfs_byname_kld(const char *, struct thread *td, int *); +void vfs_mount_destroy(struct mount *); +void vfs_event_signal(fsid_t *, u_int32_t, intptr_t); +void vfs_freeopts(struct vfsoptlist *opts); +void vfs_deleteopt(struct vfsoptlist *opts, const char *name); +int vfs_buildopts(struct uio *auio, struct vfsoptlist **options); +int vfs_flagopt(struct vfsoptlist *opts, const char *name, uint64_t *w, + uint64_t val); +int vfs_getopt(struct vfsoptlist *, const char *, void **, int *); +int vfs_getopt_pos(struct vfsoptlist *opts, const char *name); +int vfs_getopt_size(struct vfsoptlist *opts, const char *name, + off_t *value); +char *vfs_getopts(struct vfsoptlist *, const char *, int *error); +int vfs_copyopt(struct vfsoptlist *, const char *, void *, int); +int vfs_filteropt(struct vfsoptlist *, const char **legal); +void vfs_opterror(struct vfsoptlist *opts, const char *fmt, ...); +int vfs_scanopt(struct vfsoptlist *opts, const char *name, const char *fmt, ...); +int vfs_setopt(struct vfsoptlist *opts, const char *name, void *value, + int len); +int vfs_setopt_part(struct vfsoptlist *opts, const char *name, void *value, + int len); +int vfs_setopts(struct vfsoptlist *opts, const char *name, + const char *value); +int vfs_setpublicfs /* set publicly exported fs */ + (struct mount *, struct netexport *, struct export_args *); +void vfs_msync(struct mount *, int); +int vfs_busy(struct mount *, int); +int vfs_export /* process mount export info */ + (struct mount *, struct export_args *); +void vfs_allocate_syncvnode(struct mount *); +void vfs_deallocate_syncvnode(struct mount *); +int vfs_donmount(struct thread *td, uint64_t fsflags, + struct uio *fsoptions); +void vfs_getnewfsid(struct mount *); +struct cdev *vfs_getrootfsid(struct mount *); +struct mount *vfs_getvfs(fsid_t *); /* return vfs given fsid */ +struct mount *vfs_busyfs(fsid_t *); +int vfs_modevent(module_t, int, void *); +void vfs_mount_error(struct mount *, const char *, ...); +void vfs_mountroot(void); /* mount our root filesystem */ +void vfs_mountedfrom(struct mount *, const char *from); +void vfs_oexport_conv(const struct oexport_args *oexp, + struct export_args *exp); +void vfs_ref(struct mount *); +void vfs_rel(struct mount *); +struct mount *vfs_mount_alloc(struct vnode *, struct vfsconf *, const char *, + struct ucred *); +int vfs_suser(struct mount *, struct thread *); +void vfs_unbusy(struct mount *); +void vfs_unmountall(void); +extern TAILQ_HEAD(mntlist, mount) mountlist; /* mounted filesystem list */ +extern struct mtx mountlist_mtx; +extern struct nfs_public nfs_pub; + +/* + * Declarations for these vfs default operations are located in + * kern/vfs_default.c, they should be used instead of making "dummy" + * functions or casting entries in the VFS op table to "enopnotsupp()". + */ +vfs_root_t vfs_stdroot; +vfs_quotactl_t vfs_stdquotactl; +vfs_statfs_t vfs_stdstatfs; +vfs_sync_t vfs_stdsync; +vfs_sync_t vfs_stdnosync; +vfs_vget_t vfs_stdvget; +vfs_fhtovp_t vfs_stdfhtovp; +vfs_checkexp_t vfs_stdcheckexp; +vfs_init_t vfs_stdinit; +vfs_uninit_t vfs_stduninit; +vfs_extattrctl_t vfs_stdextattrctl; +vfs_sysctl_t vfs_stdsysctl; + +#else /* !_KERNEL */ + +#include + +struct stat; + +__BEGIN_DECLS +int fhopen(const struct fhandle *, int); +int fhstat(const struct fhandle *, struct stat *); +int fhstatfs(const struct fhandle *, struct statfs *); +int fstatfs(int, struct statfs *); +int getfh(const char *, fhandle_t *); +int getfsstat(struct statfs *, long, int); +int getmntinfo(struct statfs **, int); +int lgetfh(const char *, fhandle_t *); +int mount(const char *, const char *, int, void *); +int nmount(struct iovec *, unsigned int, int); +int statfs(const char *, struct statfs *); +int unmount(const char *, int); + +/* C library stuff */ +int getvfsbyname(const char *, struct xvfsconf *); +__END_DECLS + +#endif /* _KERNEL */ + +#endif /* !_SYS_MOUNT_H_ */ From owner-svn-soc-all@FreeBSD.ORG Tue Jun 12 13:59:24 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 2F174106564A for ; Tue, 12 Jun 2012 13:59:22 +0000 (UTC) (envelope-from aleek@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 12 Jun 2012 13:59:22 +0000 Date: Tue, 12 Jun 2012 13:59:22 +0000 From: aleek@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120612135922.2F174106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237548 - soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 13:59:24 -0000 Author: aleek Date: Tue Jun 12 13:59:21 2012 New Revision: 237548 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237548 Log: Extending GPTimer support Added: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.h Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/files.am37x Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c Tue Jun 12 13:46:54 2012 (r237547) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c Tue Jun 12 13:59:21 2012 (r237548) @@ -29,86 +29,32 @@ /* * Based on gptimer driver by Ben Gray */ +#include +__FBSDID("$FreeBSD$"); -#define OMAP3_NUM_TIMERS 12 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include -/* - * Ids of the timers used by the kernel - */ -#define TICKTIMER_GPTIMER 10 -#define TIMECOUNT_GPTIMER 11 - -/* - * Standard registers for OMAP3 General Purpose Timers - */ -#define OMAP3_GPT_TIDR 0x0000 -#define OMAP3_GPT_TIOCP_CFG 0x0010 -#define OMAP3_GPT_TISTAT 0x0014 -#define OMAP3_GPT_TISR 0x0018 -#define OMAP3_GPT_TIER 0x001C -#define OMAP3_GPT_TWER 0x0020 -#define OMAP3_GPT_TCLR 0x0024 -#define OMAP3_GPT_TCRR 0x0028 -#define OMAP3_GPT_TLDR 0x002C -#define OMAP3_GPT_TTGR 0x0030 -#define OMAP3_GPT_TWPS 0x0034 -#define OMAP3_GPT_TMAR 0x0038 -#define OMAP3_GPT_TCAR1 0x003C -#define OMAP3_GPT_TSICR 0x0040 -#define OMAP3_GPT_TCAR2 0x0044 -#define OMAP3_GPT_TPIR 0x0048 -#define OMAP3_GPT_TNIR 0x004C -#define OMAP3_GPT_TCVR 0x0050 -#define OMAP3_GPT_TOCR 0x0054 -#define OMAP3_GPT_TOWR 0x0058 - -/** - * Data structure per Timer. - */ -struct omap3_gptimer { - - /* Flags indicating current and configured status */ - unsigned int flags; - -#define OMAP_GPTIMER_AVAILABLE_FLAG 0x01000000 -#define OMAP_GPTIMER_ACTIVATED_FLAG 0x02000000 - - /* Lock taken when configuring the registers */ - struct mtx mtx; - - /* The memory resource for the timer register set */ - struct resource* mem_res; - - /* The IRQ resource and handle (if installed) for the timer */ - struct resource* irq_res; - void* irq_h; - - /* Callback function used when an interrupt is tripped on the given channel */ - void (*callback)(void *data); - - /* Callback data passed in the callback ... duh */ - void* callback_data; - - /* The profile of the timer, basically defines the register layout */ - unsigned int profile; - - /* The source clock to use */ - unsigned int source; -}; - - -/** - * Timer driver context, allocated and stored globally, this driver is not - * intended to ever be unloaded (see g_omap_gptimer_sc). - * - */ -struct omap3_gptimer_softc { - device_t sc_dev; - unsigned int sc_num_timers; - struct omap3_gptimer sc_timers[MAX_NUM_TIMERS]; - struct omap3_gptimer *sc_tick_timer; - -}; static struct omap3_gptimer_softc *g_omap3_gptimer_sc = NULL; @@ -146,9 +92,121 @@ static unsigned omap3_gptimer_tc_get_timecount(struct timecounter *tc) { - return omap3_gptimer_tc_read_4(DMTIMER_TCRR); + uint32_t count; + omap3_gptimer_read_count(TIMECOUNT_GPTIMER, &count); + return(count); + +} + +/** + * omap_gptimer_read_count - reads the current timer value + * @n: the number of the timer (first timer is number 1) + * @cnt: + * + * + * RETURNS: + * Returns 0 on success, otherwise an error code + */ +int +omap3_gptimer_read_count(unsigned int n, uint32_t *cnt) +{ + struct omap_gptimer_softc *sc = g_omap_gptimer_sc; + struct omap_gptimer *timer; + int ret; + + /* Sanity checks */ + if (sc == NULL) + return (ENOMEM); + if ((n == 0) || (n > sc->sc_num_timers)) + return (EINVAL); + + /* Get a pointer to the individual timer struct */ + timer = &sc->sc_timers[n-1]; + + OMAP3_GPTIMER_LOCK(timer); + + if (!(timer->flags & OMAP_GPTIMER_ACTIVATED_FLAG)) { + ret = EINVAL; + } else { + *cnt = omap_gptimer_readl(timer, timer->tcrr); + ret = 0; + } + + OMAP3_GPTIMER_UNLOCK(timer); + + return (ret); +} + + +/** + * omap_gptimer_write_count - writes a value into the current count + * @n: the number of the timer (first timer is number 1) + * @cnt: the value to put in the count register + * + * + * + * RETURNS: + * Returns 0 on success, otherwise an error code + */ +int +omap3_gptimer_write_count(unsigned int n, uint32_t cnt) +{ + struct omap_gptimer_softc *sc = g_omap_gptimer_sc; + struct omap_gptimer *timer; + + /* Sanity checks */ + if (sc == NULL) + return (ENOMEM); + if ((n == 0) || (n > MAX_NUM_TIMERS)) + return (EINVAL); + + /* Get a pointer to the individual timer struct */ + timer = &sc->sc_timers[n-1]; + if (!(timer->flags & OMAP_GPTIMER_ACTIVATED_FLAG)) + return (EINVAL); + + OMAP3_GPTIMER_LOCK(timer); + + omap_gptimer_writel(timer, timer->tcrr, cnt); + + OMAP3_GPTIMER_UNLOCK(timer); + + return (0); } + +/** + * omap_gptimer_readl - reads a 32-bit value from one of the timer registers + * @timer: Timer device context + * @off: The offset of a register from the timer register address range + * + * + * RETURNS: + * 32-bit value read from the register. + */ +static inline uint32_t +omap3_gptimer_readl(struct omap3_gptimer *timer, bus_size_t off) +{ + return (bus_read_4(timer->mem_res, off)); +} + +/** + * omap_gptimer_writel - writes a 32-bit value to one of the timer registers + * @timer: Timer device context + * @off: The offset of a register from the timer register address range + * @val: The value to write into the register + * + * + * RETURNS: + * nothing + */ +static inline void +omap3_gptimer_writel(struct omap3_gptimer *timer, bus_size_t off, uint32_t val) +{ + bus_write_4(timer->mem_res, off, val); +} + + /** * omap_gptimer_activate - configures the timer * @n: the number of the timer (first timer is number 1) @@ -201,15 +259,15 @@ } - OMAP_GPTIMER_LOCK(timer); + OMAP3_GPTIMER_LOCK(timer); /* Enable the functional and interface clock */ - if (flags & OMAP_GPTIMER_32KCLK_FLAG) - omap_prcm_clk_set_source(timer->source, F32KHZ_CLK); + if (flags & OMAP3_GPTIMER_32KCLK_FLAG) + ti_prcm_clk_set_source(timer->source, F32KHZ_CLK); else - omap_prcm_clk_set_source(timer->source, SYSCLK_CLK); + ti_prcm_clk_set_source(timer->source, SYSCLK_CLK); - omap_prcm_clk_enable(timer->source); + ti_prcm_clk_enable(timer->source); /* Store the flags in the timer context */ @@ -219,38 +277,24 @@ /* Reset the timer and poll on the reset complete flag */ if (timer->profile == OMAP_GPTIMER_PROFILE_OMAP3) { - omap_gptimer_writel(timer, OMAP_GPT_TIOCP_CFG, 0x2); + omap_gptimer_writel(timer, OMAP3_GPT_TIOCP_CFG, 0x2); /* TODO: add a timeout */ - while ((omap_gptimer_readl(timer, OMAP_GPT_TISTAT) & 0x01) == 0x00) + while ((omap_gptimer_readl(timer, OMAP3_GPT_TISTAT) & 0x01) == 0x00) continue; /* Clear the interrupt status */ - omap_gptimer_writel(timer, OMAP_GPT_TISR, TCAR | OVF | MAT); + omap_gptimer_writel(timer, OMAP3_GPT_TISR, TCAR | OVF | MAT); } - else if (timer->profile == OMAP_GPTIMER_PROFILE_OMAP4) { - omap_gptimer_writel(timer, OMAP_GPT_TIOCP_CFG, 0x1); - /* TODO: add a timeout */ - while ((omap_gptimer_readl(timer, OMAP_GPT_TIOCP_CFG) & 0x01) == 0x01) - continue; - - /* Clear the interrupt status */ - omap_gptimer_writel(timer, OMAP4_GPT_IRQSTATUS, TCAR | OVF | MAT); - } - - /* If the user supplied a zero value we set a free running timer */ if (time_us == 0) { - /* Set the initial value and roll over value to 0 */ startcount = 0x00000000; - } else { - /* We need to calculate the number of timer ticks in either the reload * value (for periodic timers) or the overflow */ - omap_prcm_clk_get_source_freq(timer->source, &freq); + ti_prcm_clk_get_source_freq(timer->source, &freq); freq64 = freq; /* Calculate the period of the timer, 64 bit calculations used to @@ -277,35 +321,35 @@ /* Adjust the count and apply the prescaler */ tickcount >>= (prescaler + 1); - val = omap_gptimer_readl(timer, timer->tclr); + val = omap3_gptimer_readl(timer, timer->tclr); val &= ~TCLR_PTV_MASK; val |= TCLR_PRE | (prescaler << 2); - omap_gptimer_writel(timer, timer->tclr, val); + omap3_gptimer_writel(timer, timer->tclr, val); } /* Calculate the start value */ startcount = 0xFFFFFFFFUL - (uint32_t)(tickcount & 0xFFFFFFFFUL); -printf("[BRG] %s, %d : freq64=%llu : tickcount=%llu : startcount=%u : time_us=%u\n", + printf("[BRG] %s, %d : freq64=%llu : tickcount=%llu : startcount=%u : time_us=%u\n", __func__, __LINE__, freq64, tickcount, startcount, time_us); } /* Load the start value into the count register */ - omap_gptimer_writel(timer, timer->tcrr, startcount); + omap3_gptimer_writel(timer, timer->tcrr, startcount); /* Enable autoload mode if configuring a periodic timer or system tick * timer. Also set the reload count to match the period tick count. */ - if (flags & OMAP_GPTIMER_PERIODIC_FLAG) { + if (flags & OMAP3_GPTIMER_PERIODIC_FLAG) { /* Enable auto reload */ - val = omap_gptimer_readl(timer, timer->tclr); + val = omap3_gptimer_readl(timer, timer->tclr); val |= TCLR_AR; - omap_gptimer_writel(timer, timer->tclr, val); + omap3_gptimer_writel(timer, timer->tclr, val); /* Set the reload value */ - omap_gptimer_writel(timer, timer->tldr, startcount); + omap3_gptimer_writel(timer, timer->tldr, startcount); } @@ -318,19 +362,16 @@ /* Activate the interrupt */ if (bus_setup_intr(sc->sc_dev, timer->irq_res, - INTR_TYPE_MISC | INTR_MPSAFE, NULL, omap_gptimer_intr, + INTR_TYPE_MISC | INTR_MPSAFE, NULL, omap3_gptimer_intr, (void*)timer, &timer->irq_h)) { device_printf(sc->sc_dev, "Error: failed to activate interrupt\n"); } /* Enable the overflow interrupts. */ if (timer->profile == OMAP_GPTIMER_PROFILE_OMAP3) { - val = omap_gptimer_readl(timer, OMAP_GPT_TIER); + val = omap3_gptimer_readl(timer, OMAP3_GPT_TIER); val |= OVF; - omap_gptimer_writel(timer, OMAP_GPT_TIER, val); - } - else if (timer->profile == OMAP_GPTIMER_PROFILE_OMAP4) { - omap_gptimer_writel(timer, OMAP4_GPT_IRQENABLE_SET, OVF); + omap3_gptimer_writel(timer, OMAP3_GPT_TIER, val); } } @@ -338,9 +379,9 @@ /* Finally set the activated flag */ timer->flags |= OMAP_GPTIMER_ACTIVATED_FLAG; - OMAP_GPTIMER_UNLOCK(timer); + OMAP3_GPTIMER_UNLOCK(timer); -printf("[BRG] %s, %d\n", __func__, __LINE__); + printf("[BRG] %s, %d\n", __func__, __LINE__); return (0); } Added: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.h Tue Jun 12 13:59:21 2012 (r237548) @@ -0,0 +1,139 @@ +#define OMAP3_NUM_TIMERS 12 + +/* + * Ids of the timers used by the kernel + */ +#define TICKTIMER_GPTIMER 10 +#define TIMECOUNT_GPTIMER 11 + +/* + * Standard registers for OMAP3 General Purpose Timers + */ +#define OMAP3_GPT_TIDR 0x0000 +#define OMAP3_GPT_TIOCP_CFG 0x0010 +#define OMAP3_GPT_TISTAT 0x0014 +#define OMAP3_GPT_TISR 0x0018 +#define OMAP3_GPT_TIER 0x001C +#define OMAP3_GPT_TWER 0x0020 +#define OMAP3_GPT_TCLR 0x0024 +#define OMAP3_GPT_TCRR 0x0028 +#define OMAP3_GPT_TLDR 0x002C +#define OMAP3_GPT_TTGR 0x0030 +#define OMAP3_GPT_TWPS 0x0034 +#define OMAP3_GPT_TMAR 0x0038 +#define OMAP3_GPT_TCAR1 0x003C +#define OMAP3_GPT_TSICR 0x0040 +#define OMAP3_GPT_TCAR2 0x0044 +#define OMAP3_GPT_TPIR 0x0048 +#define OMAP3_GPT_TNIR 0x004C +#define OMAP3_GPT_TCVR 0x0050 +#define OMAP3_GPT_TOCR 0x0054 +#define OMAP3_GPT_TOWR 0x0058 + +/* GPT_TCLR Register bit fields */ +#define TCLR_GPO_CFG (0x1 << 14) +#define TCLR_CAPT_MODE (0x1 << 13) +#define TCLR_PT (0x1 << 12) +#define TCLR_TRG_MASK (0x3 << 10) +#define TCLR_TCM_MASK (0x3 << 8) +#define TCLR_SCPWM (0x1 << 7) +#define TCLR_CE (0x1 << 6) +#define TCLR_PRE (0x1 << 5) +#define TCLR_PTV_MASK (0x7 << 2) +#define TCLR_AR (0x1 << 1) +#define TCLR_ST (0x1 << 0) + +/* + * The following flags define the clocking source, if specified the timer will + * be clocked from the 32Khz source, otherwise it clocked from the sysclk. + */ +#define OMAP_GPTIMER_32KCLK_FLAG 0x00000100 + + +/** + * Macros for driver mutex locking + */ +#define OMAP3_GPTIMER_LOCK(_tmr) mtx_lock(&(_tmr)->mtx) +#define OMAP3_GPTIMER_UNLOCK(_tmr) mtx_unlock(&(_tmr)->mtx) +#define OMAP3_GPTIMER_ASSERT_LOCKED(_tmr) mtx_assert(&(_tmr)->mtx, MA_OWNED); +#define OMAP3_GPTIMER_ASSERT_UNLOCKED(_tmr) mtx_assert(&(_tmr)->mtx, MA_NOTOWNED); + +/** + * Data structure per Timer. + */ +struct omap3_gptimer { + + /* Flags indicating current and configured status */ + unsigned int flags; + +#define OMAP_GPTIMER_AVAILABLE_FLAG 0x01000000 +#define OMAP_GPTIMER_ACTIVATED_FLAG 0x02000000 + + /* Lock taken when configuring the registers */ + struct mtx mtx; + + /* The memory resource for the timer register set */ + struct resource* mem_res; + + /* The IRQ resource and handle (if installed) for the timer */ + struct resource* irq_res; + void* irq_h; + + /* Callback function used when an interrupt is tripped on the given channel */ + void (*callback)(void *data); + + /* Callback data passed in the callback ... duh */ + void* callback_data; + + /* The profile of the timer, basically defines the register layout */ + unsigned int profile; + + /* The source clock to use */ + unsigned int source; +}; + + +/** + * Timer driver context, allocated and stored globally, this driver is not + * intended to ever be unloaded (see g_omap_gptimer_sc). + * + */ +struct omap3_gptimer_softc { + device_t sc_dev; + unsigned int sc_num_timers; + struct omap3_gptimer sc_timers[OMAP3_NUM_TIMERS]; + struct omap3_gptimer *sc_tick_timer; + +}; + + +static unsigned +omap3_gptimer_tc_get_timecount(struct timecounter *tc); + +static inline uint32_t +omap3_gptimer_readl(struct omap3_gptimer *timer, bus_size_t off); + + +static inline void +omap3_gptimer_writel(struct omap3_gptimer *timer, bus_size_t off, uint32_t val); + +int +omap_gptimer_activate(unsigned int n, unsigned int flags, unsigned int time_us, + void (*callback)(void *data), void *data); + +static void +omap3_gptimer_intr(void *arg); + + +static int +omap3_gptimer_probe(device_t dev); + + +static int +omap3_gptimer_attach(device_t dev); + +int +omap3_gptimer_write_count(unsigned int n, uint32_t cnt); + +int +omap3_gptimer_read_count(unsigned int n, uint32_t *cnt); Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/files.am37x ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/files.am37x Tue Jun 12 13:46:54 2012 (r237547) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/files.am37x Tue Jun 12 13:59:21 2012 (r237548) @@ -2,7 +2,7 @@ arm/ti/aintc.c standard arm/ti/am37x/am37x_prcm.c standard -arm/ti/am37x/am37x_dmtimer.c standard +arm/ti/am37x/am37x_gptimer.c standard arm/ti/am37x/am37x_scm_padconf.c standard arm/ti/ti_edma3.c standard arm/ti/ti_mmchs.c optional mmc From owner-svn-soc-all@FreeBSD.ORG Tue Jun 12 14:05:45 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id D93931065670 for ; Tue, 12 Jun 2012 14:05:43 +0000 (UTC) (envelope-from gpf@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 12 Jun 2012 14:05:43 +0000 Date: Tue, 12 Jun 2012 14:05:43 +0000 From: gpf@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120612140543.D93931065670@hub.freebsd.org> Cc: Subject: socsvn commit: r237552 - in soc2012/gpf/pefs_kmod: sbin/pefs sys/fs/pefs X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 14:05:46 -0000 Author: gpf Date: Tue Jun 12 14:05:43 2012 New Revision: 237552 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237552 Log: - try to acquire a vnode for .pefs.checksum during pefs_mount [buggy] Modified: soc2012/gpf/pefs_kmod/sbin/pefs/pefs_checksum.c soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs.h soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vfsops.c Modified: soc2012/gpf/pefs_kmod/sbin/pefs/pefs_checksum.c ============================================================================== --- soc2012/gpf/pefs_kmod/sbin/pefs/pefs_checksum.c Tue Jun 12 13:57:56 2012 (r237551) +++ soc2012/gpf/pefs_kmod/sbin/pefs/pefs_checksum.c Tue Jun 12 14:05:43 2012 (r237552) @@ -924,7 +924,7 @@ * A1) semantic checks: * A1a) file should reside in pefs filesystem & file should be regular file. * A1b) if symlink, acquire and save the absolute path of the symlink's - * target. Try to stat() the target but don't do anything else. + * target. Try to lstat() the target but don't do anything else. * A1c) If hardlink, save a reference to this file entry in our rb tree. * rb-tree uses inodes as keys and is used in part C to print warnings. * A1d) Open and store file descriptors to file & parent_directory. Modified: soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs.h ============================================================================== --- soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs.h Tue Jun 12 13:57:56 2012 (r237551) +++ soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs.h Tue Jun 12 14:05:43 2012 (r237552) @@ -118,6 +118,13 @@ char ptk_tweak[PEFS_TWEAK_SIZE]; }; +/* XXXgpf: fill this in */ +#define PEFS_FILE_CHECKSUM ".pefs.checksum" + +struct pefs_checksum { + int pcs_int; +}; + #define PN_HASKEY 0x000001 #define PN_WANTRECYCLE 0x000100 #define PN_LOCKBUF_SMALL 0x001000 @@ -138,12 +145,14 @@ #define PM_ROOT_CANRECURSE 0x01 #define PM_DIRCACHE 0x02 #define PM_ASYNCRECLAIM 0x04 +#define PM_CHECKSUM 0x08 struct pefs_mount { struct mount *pm_lowervfs; struct vnode *pm_rootvp; struct mtx pm_keys_lock; struct pefs_key_head pm_keys; + struct pefs_checksum pm_checksum; int pm_flags; }; Modified: soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vfsops.c ============================================================================== --- soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vfsops.c Tue Jun 12 13:57:56 2012 (r237551) +++ soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vfsops.c Tue Jun 12 14:05:43 2012 (r237552) @@ -72,6 +72,7 @@ "dircache", "nodircache", "asyncreclaim", + "checksum", NULL }; @@ -119,6 +120,65 @@ return (0); } +/* xxxgpf: tmp 4 dbg purposes */ +static void +pefs_dbg_vnode(struct vnode *vp, char *str) +{ + printf("%s is locked: %d\n", str, VOP_ISLOCKED(vp)); + printf("%s usecount: %d\n", str, vp->v_usecount); + printf("%s holdcnt: %d\n", str, vp->v_holdcnt); + printf("%s writecount: %d\n", str, vp->v_writecount); +} + +/* + * XXXgpf: + * get vp for checksum + * read header info + * then read index into 2 huge mallocd char*s + * should also worry about pefs_init(), pefs_uninit(), and unmount + */ +static int +pefs_checksum_load(struct mount *mp) +{ + struct nameidata nd, *ndp = &nd; + struct pefs_mount *pm; + struct vnode *checksumvp; + char path[MAXPATHLEN + 1]; + int error; + + pm = VFS_TO_PEFS(mp); + + printf("from = %s\n", mp->mnt_stat.f_mntfromname); + //printf("to = %s\n", mp->mnt_stat.f_mntonname); + snprintf(path, sizeof(path), "%s/%s", mp->mnt_stat.f_mntfromname, PEFS_FILE_CHECKSUM); + printf("path = %s\n", path); + + pefs_dbg_vnode(pm->pm_rootvp, "start rootvp"); + + NDINIT(ndp, LOOKUP, 0, UIO_SYSSPACE, path, curthread); + error = namei(ndp); + + pefs_dbg_vnode(pm->pm_rootvp, "after namei rootvp"); + + if (error != 0) { + printf("pefs_checksum_load: namei error %d\n", error); + // tmp change + return (0); + } + + checksumvp = ndp->ni_vp; + NDFREE(ndp, NDF_NO_VP_RELE); + + /* XXXgpf: temporary vrele of checksumvp */ + pefs_dbg_vnode(checksumvp, "before vrele checksumvp"); + vrele(checksumvp); + pefs_dbg_vnode(checksumvp, "after vrele checksumvp"); + + pefs_dbg_vnode(pm->pm_rootvp, "end rootvp"); + + return (0); +} + /* * Mount null layer */ @@ -131,7 +191,7 @@ struct pefs_mount *pm; char *from, *from_free; int isvnunlocked = 0, len; - int opt_dircache, opt_asyncreclaim; + int opt_checksum, opt_dircache, opt_asyncreclaim; int error = 0; PEFSDEBUG("pefs_mount(mp = %p)\n", (void *)mp); @@ -155,6 +215,12 @@ vfs_deleteopt(mp->mnt_optnew, "asyncreclaim"); opt_asyncreclaim = 1; } + opt_checksum = -1; + if (vfs_flagopt(mp->mnt_optnew, "checksum", NULL, 0)) { + vfs_deleteopt(mp->mnt_optnew, "checksum"); + printf("checksum!\n"); + opt_checksum = 1; + } if (mp->mnt_flag & MNT_UPDATE) { error = EOPNOTSUPP; @@ -170,6 +236,9 @@ PM_ASYNCRECLAIM, "asyncreclaim"); error = 0; } + /* + * XXXgpf: should we allow opt_checksum with MNT_UPDATE? + */ return (error); } @@ -262,6 +331,7 @@ pm->pm_flags |= PM_ROOT_CANRECURSE; pefs_opt_set(mp, opt_dircache, pm, PM_DIRCACHE, "dircache"); pefs_opt_set(mp, opt_asyncreclaim, pm, PM_ASYNCRECLAIM, "asyncreclaim"); + pefs_opt_set(mp, opt_checksum, pm, PM_CHECKSUM, "checksum"); /* * Save reference. Each mount also holds @@ -302,6 +372,17 @@ mp->mnt_data = pm; vfs_getnewfsid(mp); + if ((pm->pm_flags & PM_CHECKSUM) != 0) { + pefs_dbg_vnode(lowerrootvp, "BEFORE lowerootvp"); + error = pefs_checksum_load(mp); + pefs_dbg_vnode(lowerrootvp, "AFTER lowerootvp"); + if (error != 0) { + /* XXXgpf: what should be done for lowerrootvp? vput? */ + free(pm, M_PEFSMNT); + return (error); + } + } + PEFSDEBUG("pefs_mount: lower %s, alias at %s\n", mp->mnt_stat.f_mntfromname, mp->mnt_stat.f_mntonname); return (0); From owner-svn-soc-all@FreeBSD.ORG Tue Jun 12 19:43:16 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 5AD47106566B for ; Tue, 12 Jun 2012 19:43:14 +0000 (UTC) (envelope-from scher@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 12 Jun 2012 19:43:14 +0000 Date: Tue, 12 Jun 2012 19:43:14 +0000 From: scher@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120612194314.5AD47106566B@hub.freebsd.org> Cc: Subject: socsvn commit: r237563 - soc2012/scher/par_ports/head/Mk X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 19:43:16 -0000 Author: scher Date: Tue Jun 12 19:43:13 2012 New Revision: 237563 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237563 Log: [fixed] more detailed debugging output for parallel dependency builds. dependencies' build output is splitted into separate files. Modified: soc2012/scher/par_ports/head/Mk/bsd.port.mk Modified: soc2012/scher/par_ports/head/Mk/bsd.port.mk ============================================================================== --- soc2012/scher/par_ports/head/Mk/bsd.port.mk Tue Jun 12 18:19:46 2012 (r237562) +++ soc2012/scher/par_ports/head/Mk/bsd.port.mk Tue Jun 12 19:43:13 2012 (r237563) @@ -5053,18 +5053,20 @@ ${PKG_ADD} $${subpkgfile}; \ fi; \ else \ - (cd $$dir; ${MAKE} -DINSTALLS_DEPENDS $$target $$depends_args) & spawned=$$!; \ + log_file="/tmp/ports_logs/dep-$${dir\#\#*/}-parent-${PORTNAME}.log"; \ + (cd $$dir; ${MAKE} -DINSTALLS_DEPENDS $$target $$depends_args 2>> $${log_file} >> $${log_file} ) & spawned=$$!; \ fi; \ else \ - (cd $$dir; ${MAKE} -DINSTALLS_DEPENDS $$target $$depends_args) & spawned=$$!; \ + log_file="/tmp/ports_logs/dep-$${dir\#\#*/}-parent-$${PORTNAME}.log"; \ + (cd $$dir; ${MAKE} -DINSTALLS_DEPENDS $$target $$depends_args 2>> $${log_file} >> $${log_file} ) & spawned=$$!; \ fi; \ _PROCESS_ACTIVE_BUILDS= \ - echo "debugging_out_here: --- ENTER _PROCESS_ACTIVE_BUILDS SECTION " > ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : --- ENTER _PROCESS_ACTIVE_BUILDS SECTION "; \ while true; do \ builds_num=$$( ${ECHO_CMD} $${active_builds} | wc -w ); \ if [ $${builds_num} -lt ${_parv_PARALLEL_BUILDS_NUMBER} ] && [ $${\#depends} -ne 0 ]; then \ - echo "debugging_out_here: WE CAN START ANOTHER PAR BUILD " > ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : WE CAN START ANOTHER PAR BUILD "; \ break; \ fi; \ if [ $${builds_num} -eq 0 ] && [ $${\#depends} -eq 0 ]; then \ @@ -5077,12 +5079,12 @@ ps -p $${pid} > /dev/null || { \ wait $${pid} && status=$$? || status=$$?; \ if [ $${status} -eq 0 ]; then \ - echo "debugging_out_here: SOME DEP IS INSTALLED ($${dep}) " > ${PORTSDIR}/tmp/log; \ - echo "debugging_out_here: WAS _$${active_builds}_ " > ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : SOME DEP IS INSTALLED ($${dep}) "; \ + echo "---- dependency output ----- : ACTIVE BUILDS WAS _$${active_builds}_ "; \ active_builds="$${active_builds%%$${build}*} $${active_builds\#\#*$${build}}"; \ active_builds=$$( echo "$${active_builds}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ builds_num=$$(( $${builds_num} - 1 )); \ - echo "debugging_out_here: NOW _$${active_builds}_ " > ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : ACTIVE BUILDS NOW _$${active_builds}_ "; \ if [ ${.TARGET} = "lib-depends" ]; then \ lib=$${dep%%:*}; \ pattern="`${ECHO_CMD} $$lib | ${SED} -E -e 's/\./\\\\./g' -e 's/(\\\\)?\+/\\\\+/g'`"; \ @@ -5092,19 +5094,20 @@ fi; \ fi; \ elif [ $${status} -eq ${_parv_MAKE_LOCK_EXIT_STATUS} ]; then \ - echo "debugging_out_here: SOME DEP IS LOCKED ($${dep}) " > ${PORTSDIR}/tmp/log; \ - echo "debugging_out_here: WAS _$${active_builds}_ " > ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : SOME DEP IS LOCKED ($${dep}) "; \ + echo "---- dependency output ----- : ACTIVE BUILDS WAS _$${active_builds}_ "; \ active_builds="$${active_builds%%$${build}*} $${active_builds\#\#*$${build}}"; \ active_builds=$$( echo "$${active_builds}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ builds_num=$$(( $${builds_num} - 1 )); \ - echo "debugging_out_here: NOW _$${active_builds}_ " > ${PORTSDIR}/tmp/log; \ - echo "debugging_out_here: ADD IT BACK DO DEPENDS LIST " > ${PORTSDIR}/tmp/log; \ - echo "debugging_out_here: WAS _$${depends}_ " > ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : ACTIVE BUILDS NOW _$${active_builds}_ "; \ + echo "---- dependency output ----- : ADD IT BACK DO DEPENDS LIST "; \ + echo "---- dependency output ----- : DEPENDS WAS _$${depends}_ "; \ depends="$${depends} $${dep}"; \ depends=$$( echo "$${depends}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ - echo "debugging_out_here: NOW _$${depends}_ " > ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : DEPENDS NOW _$${depends}_ "; \ else \ - ${ECHO_CMD} "Errors occured while building a dependency."; \ + ${ECHO_CMD} "Errors occured while building a dependency (PID - $${pid}): $${dep}"; \ + ${ECHO_CMD} "Checkout it's log"; \ ${ECHO_CMD} "Terminating..."; \ exit 1; \ fi; \ @@ -5112,11 +5115,11 @@ done; \ if { [ $${builds_num} -eq ${_parv_PARALLEL_BUILDS_NUMBER} ] || \ ( [ $${builds_num} -gt 0 ] && [ $${\#depends} -eq 0 ] ); }; then \ - echo "debugging_out_here: CAN'T SPAWN MORE DEPS! SLEEP... " > ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : CAN'T SPAWN MORE DEPS! SLEEP... "; \ sleep 2; \ fi; \ done; \ - echo "debugging_out_here: --- LEAVE _PROCESS_ACTIVE_BUILDS SECTION " > ${PORTSDIR}/tmp/log + echo "---- dependency output ----- : --- LEAVE _PROCESS_ACTIVE_BUILDS SECTION " _TERMINATE_PROCESS_TREE= \ ${_dparv_START_OUTPUT}; \ @@ -5152,12 +5155,14 @@ depends=`${ECHO_CMD} "${${deptype}_DEPENDS}"`; \ depends=$$( echo "$${depends}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ active_builds=""; \ - echo "debugging_out_here: ------------------------- " > ${PORTSDIR}/tmp/log; \ - echo "debugging_out_here: ALL DEPS - $${depends}" > ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : ----------START BUILDING DEPS---------- "; \ + echo "---- dependency output ----- : ALL DEPS - $${depends}"; \ while [ $${#depends} -ne 0 ]; do \ i=$${depends%% *}; \ - echo "debugging_out_here: ----- NEW STEP -----" >> ${PORTSDIR}/tmp/log; \ - echo "debugging_out_here CURRENT DEP $${i}" >> ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : ----- NEW STEP -----" ; \ + echo "---- dependency output ----- DEPS TO BUILD _$${depends}_" ; \ + echo "---- dependency output ----- ACTIVE BUILDS _$${active_builds}_" ; \ + echo "---- dependency output ----- CURRENT DEP $${i}" ; \ prog=$${i%%:*}; \ if [ -z "$$prog" ]; then \ ${ECHO_MSG} "Error: there is an empty port dependency in ${deptype}_DEPENDS."; \ @@ -5245,7 +5250,7 @@ ( cd $${dir}; ${MAKE} check-lock ) || { \ status=$$?; \ if [ $${status} -eq ${_parv_MAKE_LOCK_EXIT_STATUS} ]; then \ - echo "debugging_out_here: LOCKED $${i}" >> ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : LOCKED $${i}" ; \ ${ECHO_CMD} $${prog} may be installing now.; \ notfound=${_parv_ON_LOCK_EXIT_STATUS}; \ else \ @@ -5263,26 +5268,30 @@ else \ ${_INSTALL_DEPENDS} \ if [ $${spawned} ]; then \ - echo "debugging_out_here: SPAWNED PID $${spawned}" > ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : SPAWNED PID $${spawned}"; \ active_builds="$${active_builds} $${spawned}:$${i}"; \ depends="$${depends%%$${i}*} $${depends##*$${i}}"; \ depends=$$( echo "$${depends}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ spawned=""; \ - echo "debugging_out_here: AFTER TRANSFER TO ACTIVE BUILDS _$${depends}_" >> ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : ADD TO ACTIVE BUILDS _$${active_builds}_" ; \ + echo "---- dependency output ----- : AFTER TRANSFER TO ACTIVE BUILDS _$${depends}_" ; \ fi; \ fi; \ elif [ $${notfound} -eq 0 ]; then \ depends="$${depends%%$${i}*} $${depends##*$${i}}"; \ depends=$$( echo "$${depends}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ - echo "debugging_out_here: AFTER DELETE _$${depends}_" >> ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : AFTER FROM DEPS DELETE _$${depends}_" ; \ elif [ $${notfound} -eq ${_parv_ON_LOCK_EXIT_STATUS} ]; then \ if [ $$( ${ECHO_CMD} $${depends} | wc -w ) -gt 1 ]; then \ depends="$${depends#* } $${depends%% *}"; \ depends=$$( echo "$${depends}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ - echo "debugging_out_here: AFTER CHANGE $${depends}" >> ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : AFTER ROUND CHANGE $${depends}" ; \ fi; \ fi; \ ${_PROCESS_ACTIVE_BUILDS}; \ + echo "---- dependency output ----- : ----- END OF STEP -----" ; \ + echo "---- dependency output ----- DEPS TO BUILD _$${depends}_" ; \ + echo "---- dependency output ----- ACTIVE BUILDS _$${active_builds}_" ; \ done .endif .else @@ -5298,12 +5307,14 @@ depends=`${ECHO_CMD} "${LIB_DEPENDS}"`; \ depends=$$( echo "$${depends}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ active_builds=""; \ - echo "debugging_out_here: ------------------------- " > ${PORTSDIR}/tmp/log; \ - echo "debugging_out_here: ALL DEPS - $${depends}" > ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : ----------START BUILDING LIB DEPS---------- "; \ + echo "---- dependency output ----- : ALL DEPS - $${depends}"; \ while [ $${#depends} -ne 0 ]; do \ i=$${depends%% *}; \ - echo "debugging_out_here: ----- NEW STEP -----" >> ${PORTSDIR}/tmp/log; \ - echo "debugging_out_here CURRENT DEP $${i}" >> ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : ----- NEW STEP -----" ; \ + echo "---- dependency output ----- DEPS TO BUILD _$${depends}_" ; \ + echo "---- dependency output ----- ACTIVE BUILDS _$${active_builds}_" ; \ + echo "---- dependency output ----- CURRENT DEP $${i}" ; \ lib=$${i%%:*}; \ pattern="`${ECHO_CMD} $$lib | ${SED} -E -e 's/\./\\\\./g' -e 's/(\\\\)?\+/\\\\+/g'`"\ dir=$${i#*:}; \ @@ -5334,7 +5345,7 @@ ( cd $${dir}; ${MAKE} check-lock ) || { \ status=$$?; \ if [ $${status} -eq ${_parv_MAKE_LOCK_EXIT_STATUS} ]; then \ - echo "debugging_out_here: LOCKED $${i}" >> ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : LOCKED $${i}" ; \ ${ECHO_CMD} $${lib} may be installing now.; \ notfound=${_parv_ON_LOCK_EXIT_STATUS}; \ else \ @@ -5352,26 +5363,30 @@ else \ ${_INSTALL_DEPENDS} \ if [ $${spawned} ]; then \ - echo "debugging_out_here: SPAWNED PID $${spawned}" > ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : SPAWNED PID $${spawned}"; \ active_builds="$${active_builds} $${spawned}:$${i}"; \ depends="$${depends%%$${i}*} $${depends##*$${i}}"; \ depends=$$( echo "$${depends}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ spawned=""; \ - echo "debugging_out_here: AFTER TRANSFER TO ACTIVE BUILDS _$${depends}_" >> ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : ADD TO ACTIVE BUILDS _$${active_builds}_" ; \ + echo "---- dependency output ----- : AFTER TRANSFER TO ACTIVE BUILDS _$${depends}_" ; \ fi; \ fi; \ elif [ $${notfound} -eq 0 ]; then \ depends="$${depends%%$${i}*} $${depends##*$${i}}"; \ depends=$$( echo "$${depends}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ - echo "debugging_out_here: AFTER DELETE _$${depends}_" >> ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : AFTER FROM DEPS DELETE _$${depends}_" ; \ elif [ $${notfound} -eq ${_parv_ON_LOCK_EXIT_STATUS} ]; then \ if [ $$( ${ECHO_CMD} $${depends} | wc -w ) -gt 1 ]; then \ depends="$${depends#* } $${depends%% *}"; \ depends=$$( echo "$${depends}" | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$$//' ); \ - echo "debugging_out_here: AFTER CHANGE $${depends}" >> ${PORTSDIR}/tmp/log; \ + echo "---- dependency output ----- : AFTER ROUND CHANGE $${depends}" ; \ fi; \ fi; \ ${_PROCESS_ACTIVE_BUILDS}; \ + echo "---- dependency output ----- : ----- END OF STEP -----" ; \ + echo "---- dependency output ----- DEPS TO BUILD _$${depends}_" ; \ + echo "---- dependency output ----- ACTIVE BUILDS _$${active_builds}_" ; \ done .endif From owner-svn-soc-all@FreeBSD.ORG Tue Jun 12 21:07:50 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 9A3CC106567B for ; Tue, 12 Jun 2012 21:07:48 +0000 (UTC) (envelope-from scher@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 12 Jun 2012 21:07:48 +0000 Date: Tue, 12 Jun 2012 21:07:48 +0000 From: scher@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120612210748.9A3CC106567B@hub.freebsd.org> Cc: Subject: socsvn commit: r237570 - soc2012/scher/par_ports/head/Mk X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 21:07:50 -0000 Author: scher Date: Tue Jun 12 21:07:48 2012 New Revision: 237570 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237570 Log: [bugfix] When port finds out that some dependency build fails it is necessary not to "exit 1" but to ${_TERMINATE_PROCESS_TREE} to kill all spawned background processes. Modified: soc2012/scher/par_ports/head/Mk/bsd.port.mk Modified: soc2012/scher/par_ports/head/Mk/bsd.port.mk ============================================================================== --- soc2012/scher/par_ports/head/Mk/bsd.port.mk Tue Jun 12 20:55:57 2012 (r237569) +++ soc2012/scher/par_ports/head/Mk/bsd.port.mk Tue Jun 12 21:07:48 2012 (r237570) @@ -5109,7 +5109,7 @@ ${ECHO_CMD} "Errors occured while building a dependency (PID - $${pid}): $${dep}"; \ ${ECHO_CMD} "Checkout it's log"; \ ${ECHO_CMD} "Terminating..."; \ - exit 1; \ + ${_TERMINATE_PROCESS_TREE}; \ fi; \ }; \ done; \ @@ -5230,7 +5230,7 @@ pkg_info=`${PKG_INFO} -E "$$inverse_dep" || ${TRUE}`; \ if [ "$$pkg_info" != "" ]; then \ ${ECHO_MSG} "===> Found $$pkg_info, but you need to upgrade to $$prog."; \ - exit 1; \ + ${_TERMINATE_PROCESS_TREE}; \ fi; \ fi; \ elif ${WHICH} "$$prog" > /dev/null 2>&1 ; then \ From owner-svn-soc-all@FreeBSD.ORG Tue Jun 12 21:29:33 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 6ACAC106564A for ; Tue, 12 Jun 2012 21:29:31 +0000 (UTC) (envelope-from scher@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 12 Jun 2012 21:29:31 +0000 Date: Tue, 12 Jun 2012 21:29:31 +0000 From: scher@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120612212931.6ACAC106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237571 - soc2012/scher/par_ports/head/Mk X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2012 21:29:33 -0000 Author: scher Date: Tue Jun 12 21:29:30 2012 New Revision: 237571 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237571 Log: [fixed] changes in _parv_DEFAULT_PAR_BUILDS_NUM to get logical CPUs (including e.g. hyperthreading) number Modified: soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Modified: soc2012/scher/par_ports/head/Mk/bsd.parallel.mk ============================================================================== --- soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Tue Jun 12 21:07:48 2012 (r237570) +++ soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Tue Jun 12 21:29:30 2012 (r237571) @@ -59,7 +59,7 @@ .endfor .endif #!{.TARGETS} -_parv_DEFAULT_PAR_BUILDS_NUM!= sysctl -a | grep hw.n | awk '{print $$2}' +_parv_DEFAULT_PAR_BUILDS_NUM!= ${SYSCTL} -n kern.smp.cpus ############### THIS ENTRY IS FOR DEBUGGING PURPOSE ############### ############### Custom number of parallel builds for debugging _parv_DEFAULT_PAR_BUILDS_NUM= 3 From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 03:00:09 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id E38D3106564A for ; Wed, 13 Jun 2012 03:00:08 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 03:00:08 +0000 Date: Wed, 13 Jun 2012 03:00:08 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613030008.E38D3106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237576 - in soc2012/jhagewood/diff3: . diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 03:00:10 -0000 Author: jhagewood Date: Wed Jun 13 03:00:08 2012 New Revision: 237576 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237576 Log: Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c ============================================================================== --- soc2012/jhagewood/diff3/diff3/diff3prog.c Wed Jun 13 00:12:47 2012 (r237575) +++ soc2012/jhagewood/diff3/diff3/diff3prog.c Wed Jun 13 03:00:08 2012 (r237576) @@ -88,9 +88,8 @@ #ifdef __FreeBSD__ #define __dead #endif -/* diff3 - 3-way differential file comparison */ -char const __version[] = "1.1"; +/* diff3 - 3-way differential file comparison */ /* diff3 [-ex3EX] d13 d23 f1 f2 f3 [m1 m3] * @@ -231,7 +230,7 @@ oflag = eflag = 1; break; case 'v': - printf("FreeBSD diff3 %s\n", __version); + printf("OpenBSD diff3 1.11-FreeBSD",); exit(0); case 'x': eflag = 1; @@ -256,19 +255,14 @@ if (argc < 5) { usage(); } - if (oflag) { - (void)snprintf(f1mark, sizeof(f1mark), "<<<<<<< %s", - labels[0] != NULL ? labels[0] : - argc >= 6 ? argv[5] : argv[2]); - (void)snprintf(f2mark, sizeof(f2mark), "||||||| %s", - labels[1] != NULL ? labels[1] : - argc >= 6 ? argv[4] : argv[3]); - (void)snprintf(f3mark, sizeof(f3mark), ">>>>>>> %s", - labels[2] != NULL ? labels[2] : - argc >= 7 ? argv[6] : argv[4]); + (void)snprintf(f1mark, sizeof(f1mark), "<<<<<<< %s", labels[0] + != NULL ? labels[0] : argc >= 6 ? argv[5] : argv[2]); + (void)snprintf(f2mark, sizeof(f2mark), "||||||| %s", labels[1] + != NULL ? labels[1] : argc >= 6 ? argv[4] : argv[3]); + (void)snprintf(f3mark, sizeof(f3mark), ">>>>>>> %s", labels[2] + != NULL ? labels[2] : argc >= 7 ? argv[6] : argv[4]); } - increase(); m = readin(argv[0], &d13); n = readin(argv[1], &d23); @@ -327,17 +321,18 @@ (*dd)[i].new.from = (*dd)[i-1].new.to; } (void)fclose(fp[0]); - return (i); + return(i); } int number(char **lc) { int nn; + nn = 0; while (isdigit((unsigned char)(**lc))) nn = nn*10 + *(*lc)++ - '0'; - return (nn); + return(nn); } char * @@ -347,9 +342,9 @@ while ((line = getline(b, NULL))) { if (isdigit((unsigned char)line[0])) - return (line); + return(line); } - return (NULL); + return(NULL); } char * @@ -361,7 +356,7 @@ static size_t bufsize; if ((cp = fgetln(b, &len)) == NULL) - return (NULL); + return(NULL); if (cp[len - 1] != '\n') len++; @@ -377,7 +372,7 @@ buf[len] = '\0'; if (n != NULL) *n = len; - return (buf); + return(buf); } void @@ -492,25 +487,26 @@ size_t i; if (aflag || f == NULL) - return (1); + return(1); rewind(f); errno = 0; for (i = 0; i <= BUFSIZ; i++) { if ((ch = fgetwc(f)) == WEOF) { if (errno == EILSEQ) - return (0); + return(0); break; } if (!iswspace(ch) && iswcntrl(ch)) - return (0); + return(0); } - return (1); + return(1); } void separate(const char *s) { + printf("====%s\n", s); } @@ -522,6 +518,7 @@ void change(int i, struct range *rold, int dup) { + printf("%d:", i); last[i] = rold->to; prange(rold); @@ -539,6 +536,7 @@ void prange(struct range *rold) { + if (rold->to <= rold->from) printf("%da\n", rold->from - 1); else { @@ -581,10 +579,9 @@ trouble(); if (pr != NULL) printf("%s%s", Tflag == 1? "\t" : pr, line); - cline[i]++; } - return ((int) n); + return((int) n); } /* @@ -599,7 +596,7 @@ int nline; if (r1->to-r1->from != r2->to-r2->from) - return (0); + return(0); (void)skip(0, r1->from, NULL); (void)skip(1, r2->from, NULL); nchar = 0; @@ -612,12 +609,12 @@ nchar++; if (c != d) { repos(nchar); - return (0); + return(0); } } while (c != '\n'); } repos(nchar); - return (1); + return(1); } void @@ -645,7 +642,6 @@ break; } } - if (&tcr_pos != NULL) { fsetpos(f, &tcr_pos); fputc((int)'\0', f); @@ -656,6 +652,7 @@ __dead void trouble(void) { + errx(EXIT_FAILURE, "logic error"); } @@ -665,8 +662,9 @@ int edit(struct diff *diff, int dup, int j) { + if (((dup + 1) & eflag) == 0) - return (j); + return(j); j++; overlap[j] = !dup; if (!dup) @@ -675,7 +673,7 @@ de[j].old.to = diff->old.to; de[j].new.from = de[j-1].new.to + skip(2, diff->new.from, NULL); de[j].new.to = de[j].new.from + skip(2, diff->new.to, NULL); - return (j); + return(j); } /* regurgitate */ @@ -704,7 +702,6 @@ printf("%da\n%s\n.\n", de[n].old.from - 1, f1mark); } } - if( iflag ) printf("w\nq\n"); @@ -748,6 +745,7 @@ void help(void) { + printf ("%s", "\ -e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE.\n\ -A --show-all Output all changes, bracketing conflicts.\n\ @@ -767,7 +765,7 @@ __dead void usage(void) { - fprintf(stderr, "usage: diff3 [-exEX3] /tmp/d3a.?????????? " - "/tmp/d3b.?????????? file1 file2 file3\n"); + + fprintf(stderr, "usage: diff3 [-exEX3] file1 file2 file3\n"); exit(EXIT_FAILURE); } Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 00:12:47 2012 (r237575) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 03:00:08 2012 (r237576) @@ -11,8 +11,8 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-12 01:22:51.000000000 -0400 -@@ -64,24 +64,34 @@ ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 02:59:50.000000000 -0400 +@@ -64,22 +64,31 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ @@ -47,14 +47,11 @@ +#ifdef __FreeBSD__ +#define __dead +#endif ++ /* diff3 - 3-way differential file comparison */ -+char const __version[] = "1.1"; -+ /* diff3 [-ex3EX] d13 d23 f1 f2 f3 [m1 m3] - * - * d13 = diff report on f1 vs f3 -@@ -149,33 +159,37 @@ void prange(struct range *); +@@ -149,33 +158,37 @@ void prange(struct range *); void repos(int); void separate(const char *); __dead void edscript(int); @@ -99,12 +96,12 @@ }; -@@ -216,12 +230,18 @@ main(int argc, char **argv) +@@ -216,12 +229,18 @@ main(int argc, char **argv) case 'X': oflag = eflag = 1; break; + case 'v': -+ printf("FreeBSD diff3 %s\n", __version); ++ printf("OpenBSD diff3 1.11-FreeBSD",); + exit(0); case 'x': eflag = 1; @@ -118,18 +115,36 @@ case STRIPCR_OPT: strip_cr = 1; break; -@@ -233,8 +253,9 @@ main(int argc, char **argv) +@@ -233,27 +252,25 @@ main(int argc, char **argv) argc -= optind; argv += optind; /* XXX - argc usage seems wrong here */ - if (argc < 5) + if (argc < 5) { usage(); +- + } - if (oflag) { - (void)snprintf(f1mark, sizeof(f1mark), "<<<<<<< %s", -@@ -254,6 +275,8 @@ main(int argc, char **argv) +- (void)snprintf(f1mark, sizeof(f1mark), "<<<<<<< %s", +- labels[0] != NULL ? labels[0] : +- argc >= 6 ? argv[5] : argv[2]); +- (void)snprintf(f2mark, sizeof(f2mark), "||||||| %s", +- labels[1] != NULL ? labels[1] : +- argc >= 6 ? argv[4] : argv[3]); +- (void)snprintf(f3mark, sizeof(f3mark), ">>>>>>> %s", +- labels[2] != NULL ? labels[2] : +- argc >= 7 ? argv[6] : argv[4]); ++ (void)snprintf(f1mark, sizeof(f1mark), "<<<<<<< %s", labels[0] ++ != NULL ? labels[0] : argc >= 6 ? argv[5] : argv[2]); ++ (void)snprintf(f2mark, sizeof(f2mark), "||||||| %s", labels[1] ++ != NULL ? labels[1] : argc >= 6 ? argv[4] : argv[3]); ++ (void)snprintf(f3mark, sizeof(f3mark), ">>>>>>> %s", labels[2] ++ != NULL ? labels[2] : argc >= 7 ? argv[6] : argv[4]); + } +- + increase(); + m = readin(argv[0], &d13); + n = readin(argv[1], &d23); for (i = 0; i <= 2; i++) { if ((fp[i] = fopen(argv[i + 2], "r")) == NULL) err(EXIT_FAILURE, "can't open %s", argv[i + 2]); @@ -138,7 +153,58 @@ } merge(m, n); exit(EXIT_SUCCESS); -@@ -367,8 +390,7 @@ merge(int m1, int m2) +@@ -304,17 +321,18 @@ readin(char *name, struct diff **dd) + (*dd)[i].new.from = (*dd)[i-1].new.to; + } + (void)fclose(fp[0]); +- return (i); ++ return(i); + } + + int + number(char **lc) + { + int nn; ++ + nn = 0; + while (isdigit((unsigned char)(**lc))) + nn = nn*10 + *(*lc)++ - '0'; +- return (nn); ++ return(nn); + } + + char * +@@ -324,9 +342,9 @@ getchange(FILE *b) + + while ((line = getline(b, NULL))) { + if (isdigit((unsigned char)line[0])) +- return (line); ++ return(line); + } +- return (NULL); ++ return(NULL); + } + + char * +@@ -338,7 +356,7 @@ getline(FILE *b, size_t *n) + static size_t bufsize; + + if ((cp = fgetln(b, &len)) == NULL) +- return (NULL); ++ return(NULL); + + if (cp[len - 1] != '\n') + len++; +@@ -354,7 +372,7 @@ getline(FILE *b, size_t *n) + buf[len] = '\0'; + if (n != NULL) + *n = len; +- return (buf); ++ return(buf); + } + + void +@@ -367,8 +385,7 @@ merge(int m1, int m2) d2 = d23; j = 0; @@ -148,7 +214,7 @@ printf("Binary file detected; comparison failed\n"); exit(EXIT_FAILURE); } -@@ -466,24 +488,24 @@ merge(int m1, int m2) +@@ -466,29 +483,30 @@ merge(int m1, int m2) static int asciifile(FILE *f) { @@ -160,7 +226,7 @@ - if (aflag || f == NULL) - return (1); + if (aflag || f == NULL) -+ return (1); ++ return(1); - rewind(f); - errno = 0; @@ -179,17 +245,31 @@ + for (i = 0; i <= BUFSIZ; i++) { + if ((ch = fgetwc(f)) == WEOF) { + if (errno == EILSEQ) -+ return (0); ++ return(0); + break; + } + if (!iswspace(ch) && iswcntrl(ch)) -+ return (0); ++ return(0); + } -+ return (1); ++ return(1); + } + + void + separate(const char *s) + { ++ + printf("====%s\n", s); } +@@ -500,6 +518,7 @@ separate(const char *s) void -@@ -510,8 +532,9 @@ change(int i, struct range *rold, int du + change(int i, struct range *rold, int dup) + { ++ + printf("%d:", i); + last[i] = rold->to; + prange(rold); +@@ -510,12 +529,14 @@ change(int i, struct range *rold, int du (void)skip(i, rold->to, " "); } @@ -201,7 +281,48 @@ */ void prange(struct range *rold) -@@ -606,6 +629,30 @@ repos(int nchar) + { ++ + if (rold->to <= rold->from) + printf("%da\n", rold->from - 1); + else { +@@ -558,10 +579,9 @@ skip(int i, int from, char *pr) + trouble(); + if (pr != NULL) + printf("%s%s", Tflag == 1? "\t" : pr, line); +- + cline[i]++; + } +- return ((int) n); ++ return((int) n); + } + + /* +@@ -576,7 +596,7 @@ duplicate(struct range *r1, struct range + int nline; + + if (r1->to-r1->from != r2->to-r2->from) +- return (0); ++ return(0); + (void)skip(0, r1->from, NULL); + (void)skip(1, r2->from, NULL); + nchar = 0; +@@ -589,12 +609,12 @@ duplicate(struct range *r1, struct range + nchar++; + if (c != d) { + repos(nchar); +- return (0); ++ return(0); + } + } while (c != '\n'); + } + repos(nchar); +- return (1); ++ return(1); + } + + void +@@ -606,9 +626,33 @@ repos(int nchar) (void)fseek(fp[i], (long)-nchar, SEEK_CUR); } @@ -221,7 +342,6 @@ + break; + } + } -+ + if (&tcr_pos != NULL) { + fsetpos(f, &tcr_pos); + fputc((int)'\0', f); @@ -232,13 +352,46 @@ __dead void trouble(void) { -@@ -698,13 +745,29 @@ increase(void) ++ + errx(EXIT_FAILURE, "logic error"); + } + +@@ -618,8 +662,9 @@ trouble(void) + int + edit(struct diff *diff, int dup, int j) + { ++ + if (((dup + 1) & eflag) == 0) +- return (j); ++ return(j); + j++; + overlap[j] = !dup; + if (!dup) +@@ -628,7 +673,7 @@ edit(struct diff *diff, int dup, int j) + de[j].old.to = diff->old.to; + de[j].new.from = de[j-1].new.to + skip(2, diff->new.from, NULL); + de[j].new.to = de[j].new.from + skip(2, diff->new.to, NULL); +- return (j); ++ return(j); + } + + /* regurgitate */ +@@ -657,7 +702,6 @@ edscript(int n) + printf("%da\n%s\n.\n", de[n].old.from - 1, f1mark); + } + } +- + if( iflag ) + printf("w\nq\n"); + +@@ -698,13 +742,30 @@ increase(void) szchanges = newsz; } +void +help(void) +{ ++ + printf ("%s", "\ + -e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE.\n\ + -A --show-all Output all changes, bracketing conflicts.\n\ @@ -262,7 +415,7 @@ - - fprintf(stderr, "usage: %s [-exEX3] /tmp/d3a.?????????? " - "/tmp/d3b.?????????? file1 file2 file3\n", __progname); -+ fprintf(stderr, "usage: diff3 [-exEX3] /tmp/d3a.?????????? " -+ "/tmp/d3b.?????????? file1 file2 file3\n"); ++ ++ fprintf(stderr, "usage: diff3 [-exEX3] file1 file2 file3\n"); exit(EXIT_FAILURE); } From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 03:04:38 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id EFCDB106566B for ; Wed, 13 Jun 2012 03:04:35 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 03:04:35 +0000 Date: Wed, 13 Jun 2012 03:04:35 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613030435.EFCDB106566B@hub.freebsd.org> Cc: Subject: socsvn commit: r237577 - in soc2012/jhagewood/diff3: . diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 03:04:38 -0000 Author: jhagewood Date: Wed Jun 13 03:04:35 2012 New Revision: 237577 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237577 Log: Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c ============================================================================== --- soc2012/jhagewood/diff3/diff3/diff3prog.c Wed Jun 13 03:00:08 2012 (r237576) +++ soc2012/jhagewood/diff3/diff3/diff3prog.c Wed Jun 13 03:04:35 2012 (r237577) @@ -488,7 +488,6 @@ if (aflag || f == NULL) return(1); - rewind(f); errno = 0; for (i = 0; i <= BUFSIZ; i++) { @@ -766,6 +765,6 @@ usage(void) { - fprintf(stderr, "usage: diff3 [-exEX3] file1 file2 file3\n"); + fprintf(stderr, "usage: diff3 %s file1 file2 file3\n", OPTIONS); exit(EXIT_FAILURE); } Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 03:00:08 2012 (r237576) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 03:04:35 2012 (r237577) @@ -11,7 +11,7 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 02:59:50.000000000 -0400 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 03:04:14.000000000 -0400 @@ -64,22 +64,31 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ @@ -25,7 +25,7 @@ #endif +#endif /* not lint */ +#include -+__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237524 2012-06-12 01:22:49Z jhagewood $"); ++__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237576 2012-06-13 03:00:08Z jhagewood $"); +#include +#include @@ -214,19 +214,17 @@ printf("Binary file detected; comparison failed\n"); exit(EXIT_FAILURE); } -@@ -466,29 +483,30 @@ merge(int m1, int m2) +@@ -466,29 +483,29 @@ merge(int m1, int m2) static int asciifile(FILE *f) { - wint_t ch = L'\0'; - size_t i; -+ wint_t ch = L'\0'; -+ size_t i; - +- - if (aflag || f == NULL) - return (1); -+ if (aflag || f == NULL) -+ return(1); ++ wint_t ch = L'\0'; ++ size_t i; - rewind(f); - errno = 0; @@ -240,6 +238,8 @@ - return (0); - } - return (1); ++ if (aflag || f == NULL) ++ return(1); + rewind(f); + errno = 0; + for (i = 0; i <= BUFSIZ; i++) { @@ -261,7 +261,7 @@ printf("====%s\n", s); } -@@ -500,6 +518,7 @@ separate(const char *s) +@@ -500,6 +517,7 @@ separate(const char *s) void change(int i, struct range *rold, int dup) { @@ -269,7 +269,7 @@ printf("%d:", i); last[i] = rold->to; prange(rold); -@@ -510,12 +529,14 @@ change(int i, struct range *rold, int du +@@ -510,12 +528,14 @@ change(int i, struct range *rold, int du (void)skip(i, rold->to, " "); } @@ -286,7 +286,7 @@ if (rold->to <= rold->from) printf("%da\n", rold->from - 1); else { -@@ -558,10 +579,9 @@ skip(int i, int from, char *pr) +@@ -558,10 +578,9 @@ skip(int i, int from, char *pr) trouble(); if (pr != NULL) printf("%s%s", Tflag == 1? "\t" : pr, line); @@ -298,7 +298,7 @@ } /* -@@ -576,7 +596,7 @@ duplicate(struct range *r1, struct range +@@ -576,7 +595,7 @@ duplicate(struct range *r1, struct range int nline; if (r1->to-r1->from != r2->to-r2->from) @@ -307,7 +307,7 @@ (void)skip(0, r1->from, NULL); (void)skip(1, r2->from, NULL); nchar = 0; -@@ -589,12 +609,12 @@ duplicate(struct range *r1, struct range +@@ -589,12 +608,12 @@ duplicate(struct range *r1, struct range nchar++; if (c != d) { repos(nchar); @@ -322,7 +322,7 @@ } void -@@ -606,9 +626,33 @@ repos(int nchar) +@@ -606,9 +625,33 @@ repos(int nchar) (void)fseek(fp[i], (long)-nchar, SEEK_CUR); } @@ -356,7 +356,7 @@ errx(EXIT_FAILURE, "logic error"); } -@@ -618,8 +662,9 @@ trouble(void) +@@ -618,8 +661,9 @@ trouble(void) int edit(struct diff *diff, int dup, int j) { @@ -367,7 +367,7 @@ j++; overlap[j] = !dup; if (!dup) -@@ -628,7 +673,7 @@ edit(struct diff *diff, int dup, int j) +@@ -628,7 +672,7 @@ edit(struct diff *diff, int dup, int j) de[j].old.to = diff->old.to; de[j].new.from = de[j-1].new.to + skip(2, diff->new.from, NULL); de[j].new.to = de[j].new.from + skip(2, diff->new.to, NULL); @@ -376,7 +376,7 @@ } /* regurgitate */ -@@ -657,7 +702,6 @@ edscript(int n) +@@ -657,7 +701,6 @@ edscript(int n) printf("%da\n%s\n.\n", de[n].old.from - 1, f1mark); } } @@ -384,7 +384,7 @@ if( iflag ) printf("w\nq\n"); -@@ -698,13 +742,30 @@ increase(void) +@@ -698,13 +741,30 @@ increase(void) szchanges = newsz; } @@ -416,6 +416,6 @@ - fprintf(stderr, "usage: %s [-exEX3] /tmp/d3a.?????????? " - "/tmp/d3b.?????????? file1 file2 file3\n", __progname); + -+ fprintf(stderr, "usage: diff3 [-exEX3] file1 file2 file3\n"); ++ fprintf(stderr, "usage: diff3 %s file1 file2 file3\n", OPTIONS); exit(EXIT_FAILURE); } From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 03:07:10 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 38CB01065676 for ; Wed, 13 Jun 2012 03:07:08 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 03:07:08 +0000 Date: Wed, 13 Jun 2012 03:07:08 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613030708.38CB01065676@hub.freebsd.org> Cc: Subject: socsvn commit: r237578 - soc2012/jhagewood/diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 03:07:10 -0000 Author: jhagewood Date: Wed Jun 13 03:07:07 2012 New Revision: 237578 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237578 Log: Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 03:04:35 2012 (r237577) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 03:07:07 2012 (r237578) @@ -11,7 +11,7 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 03:04:14.000000000 -0400 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 03:04:38.000000000 -0400 @@ -64,22 +64,31 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ @@ -25,7 +25,7 @@ #endif +#endif /* not lint */ +#include -+__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237576 2012-06-13 03:00:08Z jhagewood $"); ++__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237577 2012-06-13 03:04:35Z jhagewood $"); +#include +#include From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 03:11:58 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id E91721065670 for ; Wed, 13 Jun 2012 03:11:56 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 03:11:56 +0000 Date: Wed, 13 Jun 2012 03:11:56 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613031156.E91721065670@hub.freebsd.org> Cc: Subject: socsvn commit: r237579 - in soc2012/jhagewood/diff3: . diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 03:11:59 -0000 Author: jhagewood Date: Wed Jun 13 03:11:56 2012 New Revision: 237579 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237579 Log: Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c ============================================================================== --- soc2012/jhagewood/diff3/diff3/diff3prog.c Wed Jun 13 03:07:07 2012 (r237578) +++ soc2012/jhagewood/diff3/diff3/diff3prog.c Wed Jun 13 03:11:56 2012 (r237579) @@ -483,8 +483,8 @@ static int asciifile(FILE *f) { - wint_t ch = L'\0'; - size_t i; + wint_t ch = L'\0'; + size_t i; if (aflag || f == NULL) return(1); @@ -590,7 +590,7 @@ int duplicate(struct range *r1, struct range *r2) { - int c,d; + int c, d; int nchar; int nline; @@ -679,7 +679,7 @@ __dead void edscript(int n) { - int j,k; + int j, k; char block[BUFSIZ]; for (n = n; n > 0; n--) { Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 03:07:07 2012 (r237578) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 03:11:56 2012 (r237579) @@ -11,7 +11,7 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 03:04:38.000000000 -0400 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 03:11:53.000000000 -0400 @@ -64,22 +64,31 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ @@ -223,8 +223,8 @@ - - if (aflag || f == NULL) - return (1); -+ wint_t ch = L'\0'; -+ size_t i; ++ wint_t ch = L'\0'; ++ size_t i; - rewind(f); - errno = 0; @@ -298,7 +298,13 @@ } /* -@@ -576,7 +595,7 @@ duplicate(struct range *r1, struct range +@@ -571,12 +590,12 @@ skip(int i, int from, char *pr) + int + duplicate(struct range *r1, struct range *r2) + { +- int c,d; ++ int c, d; + int nchar; int nline; if (r1->to-r1->from != r2->to-r2->from) @@ -367,7 +373,7 @@ j++; overlap[j] = !dup; if (!dup) -@@ -628,7 +672,7 @@ edit(struct diff *diff, int dup, int j) +@@ -628,14 +672,14 @@ edit(struct diff *diff, int dup, int j) de[j].old.to = diff->old.to; de[j].new.from = de[j-1].new.to + skip(2, diff->new.from, NULL); de[j].new.to = de[j].new.from + skip(2, diff->new.to, NULL); @@ -376,6 +382,14 @@ } /* regurgitate */ + __dead void + edscript(int n) + { +- int j,k; ++ int j, k; + char block[BUFSIZ]; + + for (n = n; n > 0; n--) { @@ -657,7 +701,6 @@ edscript(int n) printf("%da\n%s\n.\n", de[n].old.from - 1, f1mark); } From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 05:12:59 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 54F9B106566B for ; Wed, 13 Jun 2012 05:12:57 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 05:12:57 +0000 Date: Wed, 13 Jun 2012 05:12:57 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613051257.54F9B106566B@hub.freebsd.org> Cc: Subject: socsvn commit: r237593 - in soc2012/jhagewood: diff diff/diff diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 05:12:59 -0000 Author: jhagewood Date: Wed Jun 13 05:12:56 2012 New Revision: 237593 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237593 Log: Modified: soc2012/jhagewood/diff/diff/diff.c soc2012/jhagewood/diff/diff/diff.h soc2012/jhagewood/diff/diff/diffreg.c soc2012/jhagewood/diff/hagewood-diff.patch soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/diff/diff/diff.c ============================================================================== --- soc2012/jhagewood/diff/diff/diff.c Wed Jun 13 04:59:55 2012 (r237592) +++ soc2012/jhagewood/diff/diff/diff.c Wed Jun 13 05:12:56 2012 (r237593) @@ -45,7 +45,7 @@ #include "diff.h" #include "pathnames.h" -int aflag, bflag, cflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag; +int aflag, bflag, cflag, dflag, Eflag, iflag, lflag, Nflag, Pflag, pflag, rflag; int sflag, tflag, Tflag, wflag; int Bflag, yflag; int strip_cr, tabsize=8; @@ -109,8 +109,7 @@ { "context", optional_argument, NULL, 'C' }, { "ifdef", required_argument, NULL, 'D' }, { "minimal", no_argument, NULL, 'd' }, -/* XXX: UNIMPLEMENTED - { "ignore-tab-expansion", no_argument, NULL, 'E' }, */ + { "ignore-tab-expansion", no_argument, NULL, 'E' }, { "ed", no_argument, NULL, 'e' }, /* XXX: UNIMPLEMENTED { "show-function-line", required_argument, NULL, 'F' }, */ @@ -213,6 +212,9 @@ case 'd': dflag = 1; break; + case 'E': + Eflag = 1; + break; case 'e': format = D_EDIT; break; Modified: soc2012/jhagewood/diff/diff/diff.h ============================================================================== --- soc2012/jhagewood/diff/diff/diff.h Wed Jun 13 04:59:55 2012 (r237592) +++ soc2012/jhagewood/diff/diff/diff.h Wed Jun 13 05:12:56 2012 (r237593) @@ -75,7 +75,7 @@ struct excludes *next; }; -extern int aflag, bflag, cflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag, +extern int aflag, bflag, cflag, dflag, Eflag, iflag, lflag, Nflag, Pflag, pflag, rflag, sflag, tflag, Tflag, wflag; extern int Bflag, strip_cr, tabsize; extern int format, context, status; Modified: soc2012/jhagewood/diff/diff/diffreg.c ============================================================================== --- soc2012/jhagewood/diff/diff/diffreg.c Wed Jun 13 04:59:55 2012 (r237592) +++ soc2012/jhagewood/diff/diff/diffreg.c Wed Jun 13 05:12:56 2012 (r237593) @@ -766,7 +766,8 @@ ixnew[j] = ctnew += skipline(f2); j++; } - if (bflag || wflag || iflag || Bflag) { + /* XXX Implement functionality for Eflag here */ + if (bflag || wflag || iflag || Bflag || Eflag) { for (;;) { c = getc(f1); d = getc(f2); Modified: soc2012/jhagewood/diff/hagewood-diff.patch ============================================================================== --- soc2012/jhagewood/diff/hagewood-diff.patch Wed Jun 13 04:59:55 2012 (r237592) +++ soc2012/jhagewood/diff/hagewood-diff.patch Wed Jun 13 05:12:56 2012 (r237593) @@ -1,16 +1,26 @@ diff -rupN jhagewood/diff/diff-orig/diff.c jhagewood/diff/diff/diff.c --- jhagewood/diff/diff-orig/diff.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diff.c 2012-06-12 05:35:45.000000000 -0400 ++++ jhagewood/diff/diff/diff.c 2012-06-13 05:07:54.000000000 -0400 @@ -45,7 +45,7 @@ __FBSDID("$FreeBSD$"); #include "diff.h" #include "pathnames.h" -int aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag; -+int aflag, bflag, cflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag; ++int aflag, bflag, cflag, dflag, Eflag, iflag, lflag, Nflag, Pflag, pflag, rflag; int sflag, tflag, Tflag, wflag; int Bflag, yflag; int strip_cr, tabsize=8; -@@ -129,7 +129,6 @@ static struct option longopts[] = { +@@ -109,8 +109,7 @@ static struct option longopts[] = { + { "context", optional_argument, NULL, 'C' }, + { "ifdef", required_argument, NULL, 'D' }, + { "minimal", no_argument, NULL, 'd' }, +-/* XXX: UNIMPLEMENTED +- { "ignore-tab-expansion", no_argument, NULL, 'E' }, */ ++ { "ignore-tab-expansion", no_argument, NULL, 'E' }, + { "ed", no_argument, NULL, 'e' }, + /* XXX: UNIMPLEMENTED + { "show-function-line", required_argument, NULL, 'F' }, */ +@@ -129,7 +128,6 @@ static struct option longopts[] = { { "report-identical-files", no_argument, NULL, 's' }, { "initial-tab", no_argument, NULL, 'T' }, { "expand-tabs", no_argument, NULL, 't' }, @@ -18,7 +28,7 @@ { "unified", optional_argument, NULL, 'U' }, { "version", no_argument, NULL, 'v' }, /* XXX: UNIMPLEMENTED -@@ -197,6 +196,7 @@ main(int argc, char **argv) +@@ -197,6 +195,7 @@ main(int argc, char **argv) break; case 'C': case 'c': @@ -26,7 +36,17 @@ format = D_CONTEXT; if (optarg != NULL) { l = strtol(optarg, &ep, 10); -@@ -548,7 +548,7 @@ print_status(int val, char *path1, char +@@ -213,6 +212,9 @@ main(int argc, char **argv) + case 'd': + dflag = 1; + break; ++ case 'E': ++ Eflag = 1; ++ break; + case 'e': + format = D_EDIT; + break; +@@ -548,7 +550,7 @@ print_status(int val, char *path1, char path1, entry ? entry : "", path2, entry ? entry : ""); break; case D_BINARY: @@ -37,20 +57,30 @@ case D_DIFFER: diff -rupN jhagewood/diff/diff-orig/diff.h jhagewood/diff/diff/diff.h --- jhagewood/diff/diff-orig/diff.h 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diff.h 2012-06-12 05:34:04.000000000 -0400 ++++ jhagewood/diff/diff/diff.h 2012-06-13 05:07:22.000000000 -0400 @@ -75,7 +75,7 @@ struct excludes { struct excludes *next; }; -extern int aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag, -+extern int aflag, bflag, cflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag, ++extern int aflag, bflag, cflag, dflag, Eflag, iflag, lflag, Nflag, Pflag, pflag, rflag, sflag, tflag, Tflag, wflag; extern int Bflag, strip_cr, tabsize; extern int format, context, status; diff -rupN jhagewood/diff/diff-orig/diffreg.c jhagewood/diff/diff/diffreg.c --- jhagewood/diff/diff-orig/diffreg.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diffreg.c 2012-06-12 05:38:29.000000000 -0400 -@@ -1551,16 +1551,33 @@ dump_unified_vec(FILE *f1, FILE *f2) ++++ jhagewood/diff/diff/diffreg.c 2012-06-13 05:11:57.000000000 -0400 +@@ -766,7 +766,8 @@ check(char *file1, FILE *f1, char *file2 + ixnew[j] = ctnew += skipline(f2); + j++; + } +- if (bflag || wflag || iflag || Bflag) { ++ /* XXX Implement functionality for Eflag here */ ++ if (bflag || wflag || iflag || Bflag || Eflag) { + for (;;) { + c = getc(f1); + d = getc(f2); +@@ -1551,16 +1552,33 @@ dump_unified_vec(FILE *f1, FILE *f2) static void print_header(const char *file1, const char *file2) { Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 04:59:55 2012 (r237592) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 05:12:56 2012 (r237593) @@ -11,7 +11,7 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 03:11:53.000000000 -0400 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 03:11:59.000000000 -0400 @@ -64,22 +64,31 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ @@ -25,7 +25,7 @@ #endif +#endif /* not lint */ +#include -+__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237577 2012-06-13 03:04:35Z jhagewood $"); ++__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237579 2012-06-13 03:11:56Z jhagewood $"); +#include +#include From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 14:20:19 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 24392106567E for ; Wed, 13 Jun 2012 14:20:17 +0000 (UTC) (envelope-from gpf@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 14:20:17 +0000 Date: Wed, 13 Jun 2012 14:20:17 +0000 From: gpf@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613142017.24392106567E@hub.freebsd.org> Cc: Subject: socsvn commit: r237609 - soc2012/gpf/pefs_kmod/sys/fs/pefs X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 14:20:19 -0000 Author: gpf Date: Wed Jun 13 14:20:15 2012 New Revision: 237609 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237609 Log: load checksum file header + the 2 hash tables to kernel land. The vnode used for the checksum file is a direct vnode of the lower vfs. We keep a reference (v_usecount) for our checksum vnode as long as the file system is alive. Hash tables are freed and checksumvp vrele'd during unmount. If error occurs during the load operation, mount still 'hangs'. Must have something to do with lowerrootvp. Modified: soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs.h soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vfsops.c Modified: soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs.h ============================================================================== --- soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs.h Wed Jun 13 11:59:47 2012 (r237608) +++ soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs.h Wed Jun 13 14:20:15 2012 (r237609) @@ -120,9 +120,18 @@ /* XXXgpf: fill this in */ #define PEFS_FILE_CHECKSUM ".pefs.checksum" +#define PEFS_CFH_SIZE 16 +#define PEFS_HT_CELL_SIZE 16 struct pefs_checksum { - int pcs_int; + uint8_t pcs_version; + uint8_t pcs_reserved; + uint8_t pcs_hash_len; + uint8_t pcs_hash_algo[8]; + uint8_t pcs_offset_to_hash_table; + uint32_t pcs_hash_table_size; + char *pcs_table1, *pcs_table2; + struct vnode *pcs_checksumvp; }; #define PN_HASKEY 0x000001 Modified: soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vfsops.c ============================================================================== --- soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vfsops.c Wed Jun 13 11:59:47 2012 (r237608) +++ soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vfsops.c Wed Jun 13 14:20:15 2012 (r237609) @@ -34,6 +34,7 @@ #include __FBSDID("$FreeBSD$"); +#include #include #include #include @@ -77,6 +78,7 @@ }; static MALLOC_DEFINE(M_PEFSMNT, "pefs_mount", "PEFS mount structure"); +static MALLOC_DEFINE(M_PEFSCSTABLE, "pefs_checksum_table", "PEFS checksum table"); static void pefs_opt_set(struct mount *mp, int opt, struct pefs_mount *pm, @@ -120,7 +122,7 @@ return (0); } -/* xxxgpf: tmp 4 dbg purposes */ +/* XXXgpf: tmp 4 dbg purposes */ static void pefs_dbg_vnode(struct vnode *vp, char *str) { @@ -130,52 +132,178 @@ printf("%s writecount: %d\n", str, vp->v_writecount); } -/* - * XXXgpf: - * get vp for checksum - * read header info - * then read index into 2 huge mallocd char*s - * should also worry about pefs_init(), pefs_uninit(), and unmount - */ +/* XXXgpf: tmp 4 dbg purposes */ +static void +pefs_dbg_checksum_file(struct pefs_checksum *pcs) +{ + char *p; + int i; + uint32_t nhashes; + uint32_t offset; + uint64_t file_id; + + /* print .pefs.checksum file header info */ + printf("\n+++CHECKSUM FILE HEADER INFO+++\n"); + printf("version = %x\nreserved = %d\nhash len = %d\noffset = %d\nsize = %d\nalgo = %s\n\n", + pcs->pcs_version, pcs->pcs_reserved, pcs->pcs_hash_len, pcs->pcs_offset_to_hash_table, + pcs->pcs_hash_table_size, pcs->pcs_hash_algo); + + /* print table1 */ + printf("+++HASH TABLE 1+++\n\n"); + for (i = 0; i < pcs->pcs_hash_table_size; i++) { + p = &(pcs->pcs_table1[i * PEFS_HT_CELL_SIZE]); + + memcpy(&nhashes, p, sizeof(nhashes)); + nhashes = le32toh(nhashes); + if (nhashes != 0) { + p+=sizeof(nhashes); + memcpy(&offset, p, sizeof(offset)); + offset = le32toh(offset); + p+=sizeof(offset); + memcpy(&file_id, p, sizeof(file_id)); + file_id = le64toh(file_id); + printf("cell %d:\n", i); + printf("\thashes = %d\n\toffset = %d\n\tfile id = %llu\n", + nhashes, offset, file_id); + } + else + printf("cell %d: empty\n", i); + } + + /* print table2 */ + printf("\n+++HASH TABLE 2+++\n\n"); + for (i = 0; i < pcs->pcs_hash_table_size; i++) { + p = &(pcs->pcs_table2[i * PEFS_HT_CELL_SIZE]); + + memcpy(&nhashes, p, sizeof(nhashes)); + nhashes = le32toh(nhashes); + if (nhashes != 0) { + p+=sizeof(nhashes); + memcpy(&offset, p, sizeof(offset)); + offset = le32toh(offset); + p+=sizeof(offset); + memcpy(&file_id, p, sizeof(file_id)); + file_id = le64toh(file_id); + printf("cell %d:\n", i); + printf("\thashes = %d\n\toffset = %d\n\tfile id = %llu\n", + nhashes, offset, file_id); + } + else + printf("cell %d: empty\n", i); + } +} + static int pefs_checksum_load(struct mount *mp) { + char *bufp, *path; struct nameidata nd, *ndp = &nd; - struct pefs_mount *pm; + struct pefs_chunk pc; + struct pefs_mount *pm = VFS_TO_PEFS(mp); + struct pefs_checksum *pcs = &(pm->pm_checksum); + struct ucred *cred = mp->mnt_cred; + struct uio *puio; struct vnode *checksumvp; - char path[MAXPATHLEN + 1]; + uint32_t buflen, pathlen; int error; - pm = VFS_TO_PEFS(mp); - - printf("from = %s\n", mp->mnt_stat.f_mntfromname); - //printf("to = %s\n", mp->mnt_stat.f_mntonname); - snprintf(path, sizeof(path), "%s/%s", mp->mnt_stat.f_mntfromname, PEFS_FILE_CHECKSUM); + pcs->pcs_checksumvp = NULL; + pcs->pcs_table1 = NULL; + pcs->pcs_table2 = NULL; + + pathlen = MAXPATHLEN + 1; + path = malloc(pathlen, M_TEMP, M_WAITOK); + snprintf(path, pathlen, "%s/%s", mp->mnt_stat.f_mntfromname, PEFS_FILE_CHECKSUM); printf("path = %s\n", path); + /* grab a vp for our checksum file */ pefs_dbg_vnode(pm->pm_rootvp, "start rootvp"); - - NDINIT(ndp, LOOKUP, 0, UIO_SYSSPACE, path, curthread); + NDINIT(ndp, LOOKUP, LOCKLEAF, UIO_SYSSPACE, path, curthread); error = namei(ndp); - + free(path, M_TEMP); pefs_dbg_vnode(pm->pm_rootvp, "after namei rootvp"); - if (error != 0) { printf("pefs_checksum_load: namei error %d\n", error); - // tmp change - return (0); + return (error); } checksumvp = ndp->ni_vp; - NDFREE(ndp, NDF_NO_VP_RELE); + NDFREE(ndp, NDF_NO_VP_PUT); - /* XXXgpf: temporary vrele of checksumvp */ - pefs_dbg_vnode(checksumvp, "before vrele checksumvp"); - vrele(checksumvp); - pefs_dbg_vnode(checksumvp, "after vrele checksumvp"); + /* read checksum file header info */ + buflen = PEFS_CFH_SIZE; + pefs_chunk_create(&pc, NULL, buflen); + puio = pefs_chunk_uio(&pc, 0, UIO_READ); + error = VOP_READ(checksumvp, puio, IO_UNIT | IO_NODELOCKED, cred); + if (error != 0) { + printf("pefs_checksum_load: vop_read1 error %d\n", error); + pefs_chunk_free(&pc, NULL); + vput(checksumvp); + return (error); + } + + bufp = pc.pc_base; + memcpy(&(pcs->pcs_version), bufp, sizeof(pcs->pcs_version)); + bufp+=sizeof(pcs->pcs_version); + memcpy(&(pcs->pcs_reserved), bufp, sizeof(pcs->pcs_reserved)); + bufp+=sizeof(pcs->pcs_reserved); + memcpy(&(pcs->pcs_hash_len), bufp, sizeof(pcs->pcs_hash_len)); + bufp+=sizeof(pcs->pcs_hash_len); + memcpy(&(pcs->pcs_hash_algo), bufp, sizeof(pcs->pcs_hash_algo)); + bufp+=sizeof(pcs->pcs_hash_algo); + memcpy(&(pcs->pcs_offset_to_hash_table), bufp, sizeof(pcs->pcs_offset_to_hash_table)); + bufp+=sizeof(pcs->pcs_offset_to_hash_table); + memcpy(&(pcs->pcs_hash_table_size), bufp, sizeof(pcs->pcs_hash_table_size)); + pcs->pcs_hash_table_size = le32toh(pcs->pcs_hash_table_size); + + /* XXXgpf: [TODO] sanitize input, turn hash_algo to number */ + + pefs_chunk_free(&pc, NULL); + + /* load and keep the 2 hash tables in kernel heap */ + buflen = pcs->pcs_hash_table_size * PEFS_HT_CELL_SIZE; + pefs_chunk_create(&pc, NULL, buflen); + puio = pefs_chunk_uio(&pc, pcs->pcs_offset_to_hash_table, UIO_READ); + + error = VOP_READ(checksumvp, puio, IO_UNIT | IO_NODELOCKED, cred); + if (error != 0) { + printf("pefs_checksum_load: vop_read2 error %d\n", error); + pefs_chunk_free(&pc, NULL); + vput(checksumvp); + return (error); + } + + pcs->pcs_table1 = malloc(buflen, M_PEFSCSTABLE, M_WAITOK); + memcpy(pcs->pcs_table1, pc.pc_base, buflen); + pefs_chunk_free(&pc, NULL); + + pefs_chunk_create(&pc, NULL, buflen); + puio = pefs_chunk_uio(&pc, pcs->pcs_offset_to_hash_table + buflen, UIO_READ); + + error = VOP_READ(checksumvp, puio, IO_UNIT | IO_NODELOCKED, cred); + if (error != 0) { + printf("pefs_checksum_load: vop_read3 error %d\n", error); + pefs_chunk_free(&pc, NULL); + free(pcs->pcs_table1, M_PEFSCSTABLE); + vput(checksumvp); + return (error); + } + + pcs->pcs_table2 = malloc(buflen, M_PEFSCSTABLE, M_WAITOK); + memcpy(pcs->pcs_table2, pc.pc_base, buflen); + pefs_chunk_free(&pc, NULL); + + /* print everything */ + pefs_dbg_checksum_file(pcs); + + pefs_dbg_vnode(checksumvp, "before VOP_UNLOCK checksumvp"); + /* keep the reference for checksumvp */ + VOP_UNLOCK(checksumvp, 0); + pefs_dbg_vnode(checksumvp, "after VOP_UNLOCK checksumvp"); pefs_dbg_vnode(pm->pm_rootvp, "end rootvp"); - + pcs->pcs_checksumvp = checksumvp; + return (0); } @@ -373,11 +501,19 @@ vfs_getnewfsid(mp); if ((pm->pm_flags & PM_CHECKSUM) != 0) { - pefs_dbg_vnode(lowerrootvp, "BEFORE lowerootvp"); + pefs_dbg_vnode(lowerrootvp, "BEFORE lowerrootvp"); error = pefs_checksum_load(mp); - pefs_dbg_vnode(lowerrootvp, "AFTER lowerootvp"); + pefs_dbg_vnode(lowerrootvp, "AFTER lowerrootvp"); if (error != 0) { - /* XXXgpf: what should be done for lowerrootvp? vput? */ + /* + * XXXgpf: what should be done for lowerrootvp? vput? + * pefs_dbg_vnode shows that at this point lowerootvp + * is not locked, therefore just a vrele? + * Whatever we do, if error occurs during pefs_checksum_load, + * mount seems to 'hang' + */ + vrele(lowerrootvp); + pefs_dbg_vnode(lowerrootvp, "AFTER vrele lowerrootvp"); free(pm, M_PEFSMNT); return (error); } @@ -412,6 +548,16 @@ * Finally, throw away the pefs_mount structure */ pm = VFS_TO_PEFS(mp); + if ((pm->pm_flags & PM_CHECKSUM) != 0) { + /* free the hash tables from the heap */ + if (pm->pm_checksum.pcs_table1 != NULL) + free(pm->pm_checksum.pcs_table1, M_PEFSCSTABLE); + if (pm->pm_checksum.pcs_table2 != NULL) + free(pm->pm_checksum.pcs_table2, M_PEFSCSTABLE); + /* vrele the checksum file's vnode */ + if (pm->pm_checksum.pcs_checksumvp != NULL) + vrele(pm->pm_checksum.pcs_checksumvp); + } mp->mnt_data = 0; pefs_key_remove_all(pm); mtx_destroy(&pm->pm_keys_lock); From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 14:38:57 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 08C0F106564A for ; Wed, 13 Jun 2012 14:38:55 +0000 (UTC) (envelope-from aleek@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 14:38:55 +0000 Date: Wed, 13 Jun 2012 14:38:55 +0000 From: aleek@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613143855.08C0F106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237610 - in soc2012/aleek/beaglexm-armv6/sys: arm/ti/am37x boot/fdt/dts X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 14:38:57 -0000 Author: aleek Date: Wed Jun 13 14:38:54 2012 New Revision: 237610 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237610 Log: Almost all OMAP3 GPTIMER support is written Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.h soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c Wed Jun 13 14:20:15 2012 (r237609) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c Wed Jun 13 14:38:54 2012 (r237610) @@ -42,6 +42,7 @@ #include #include #include +#include "sys/gpio.h"" #include #include @@ -56,8 +57,11 @@ #include + static struct omap3_gptimer_softc *g_omap3_gptimer_sc = NULL; +static unsigned int delay_loops_per_us = 100; + /** * Timer for tick counting. This is used to measure time by CPU @@ -89,6 +93,48 @@ .tc_quality = 1000, }; +#define __omap3_delay(i) \ + do { \ + unsigned int cnt = (i); \ + __asm __volatile("1: subs %0, %0, 1\n" \ + " bne 1b\n" \ + : "+r" (cnt) : : "cc"); \ + } while(0) + +/** + * omap3_calibrate_delay_loop - uses the setup timecounter to configure delay + * + * This is not very scientfic, basically just use the timecount to measure the + * time to do 1000 delay loops (for loop with 1024 loops). + * + * + */ +static int +omap3_calibrate_delay_loop(struct timecounter *tc) +{ + u_int oldirqstate; + unsigned int start, end; + uint64_t nanosecs; + + /* Disable interrupts to ensure they don't mess up the calculation */ + oldirqstate = disable_interrupts(I32_bit); + + start = omap3_gptimer_tc_get_timecount(tc); + __omap3_delay(10240); + end = omap3_gptimer_tc_get_timecount(tc); + + restore_interrupts(oldirqstate); + + /* Calculate the number of loops in 1us */ + nanosecs = ((uint64_t)(end - start) * 1000000000ULL) / tc->tc_frequency; + delay_loops_per_us = (unsigned int)((uint64_t)(10240 * 1000) / nanosecs); + + printf("OMAP3: delay loop calibrated to %u cycles\n", delay_loops_per_us); + + return (0); +} + + static unsigned omap3_gptimer_tc_get_timecount(struct timecounter *tc) { @@ -99,7 +145,7 @@ } /** - * omap_gptimer_read_count - reads the current timer value + * omap3_gptimer_read_count - reads the current timer value * @n: the number of the timer (first timer is number 1) * @cnt: * @@ -110,8 +156,8 @@ int omap3_gptimer_read_count(unsigned int n, uint32_t *cnt) { - struct omap_gptimer_softc *sc = g_omap_gptimer_sc; - struct omap_gptimer *timer; + struct omap3_gptimer_softc *sc = g_omap3_gptimer_sc; + struct omap3_gptimer *timer; int ret; /* Sanity checks */ @@ -125,10 +171,10 @@ OMAP3_GPTIMER_LOCK(timer); - if (!(timer->flags & OMAP_GPTIMER_ACTIVATED_FLAG)) { + if (!(timer->flags & OMAP3_GPTIMER_ACTIVATED_FLAG)) { ret = EINVAL; } else { - *cnt = omap_gptimer_readl(timer, timer->tcrr); + *cnt = omap3_gptimer_readl(timer, OMAP3_GPT_TCRR); ret = 0; } @@ -139,7 +185,7 @@ /** - * omap_gptimer_write_count - writes a value into the current count + * omap3_gptimer_write_count - writes a value into the current count * @n: the number of the timer (first timer is number 1) * @cnt: the value to put in the count register * @@ -151,23 +197,23 @@ int omap3_gptimer_write_count(unsigned int n, uint32_t cnt) { - struct omap_gptimer_softc *sc = g_omap_gptimer_sc; - struct omap_gptimer *timer; + struct omap3_gptimer_softc *sc = g_omap3_gptimer_sc; + struct omap3_gptimer *timer; /* Sanity checks */ if (sc == NULL) return (ENOMEM); - if ((n == 0) || (n > MAX_NUM_TIMERS)) + if ((n == 0) || (n > OMAP3_NUM_TIMERS)) return (EINVAL); /* Get a pointer to the individual timer struct */ timer = &sc->sc_timers[n-1]; - if (!(timer->flags & OMAP_GPTIMER_ACTIVATED_FLAG)) + if (!(timer->flags & OMAP3_GPTIMER_ACTIVATED_FLAG)) return (EINVAL); OMAP3_GPTIMER_LOCK(timer); - omap_gptimer_writel(timer, timer->tcrr, cnt); + omap3_gptimer_writel(timer, OMAP3_GPT_TCRR, cnt); OMAP3_GPTIMER_UNLOCK(timer); @@ -176,7 +222,7 @@ /** - * omap_gptimer_readl - reads a 32-bit value from one of the timer registers + * omap3_gptimer_readl - reads a 32-bit value from one of the timer registers * @timer: Timer device context * @off: The offset of a register from the timer register address range * @@ -191,7 +237,7 @@ } /** - * omap_gptimer_writel - writes a 32-bit value to one of the timer registers + * omap3_gptimer_writel - writes a 32-bit value to one of the timer registers * @timer: Timer device context * @off: The offset of a register from the timer register address range * @val: The value to write into the register @@ -206,9 +252,81 @@ bus_write_4(timer->mem_res, off, val); } +/** + * omap_gptimer_get_freq - gets the frequency of an activated timer + * @n: the number of the timer (first timer is number 1) + * @freq: unpon return will contain the current freq + * + * The timer must be activated, if not this function will return EINVAL. + * + * RETURNS: + * Returns 0 on success, otherwise an error code + */ +int +omap3_gptimer_get_freq(unsigned int n, uint32_t *freq) +{ + struct omap3_gptimer_softc *sc = g_omap3_gptimer_sc; + struct omap3_gptimer *timer; + unsigned int src_freq; + unsigned int tmr_freq; + unsigned int prescaler; + uint32_t tclr, tldr; + int rc; + + /* Sanity checks */ + if (sc == NULL) + return (ENOMEM); + if ((n == 0) || (n > OMAP3_NUM_TIMERS)) + return (EINVAL); + if (freq == NULL) + return (EINVAL); + + /* Get a pointer to the individual timer struct */ + timer = &sc->sc_timers[n-1]; + if (!(timer->flags & OMAP3_GPTIMER_ACTIVATED_FLAG)) + return (EINVAL); + + /* We get the frequency by first reading the source frequency */ + if ((rc = ti_prcm_clk_get_source_freq(timer->source, &src_freq)) != 0) + return (rc); + + + OMAP3_GPTIMER_LOCK(timer); + + /* Determine if the pre-scalar is enabled and if so the prescaler value */ + tclr = omap3_gptimer_readl(timer, OMAP3_GPT_TCLR); + if (tclr & TCLR_PRE) + prescaler = 1UL << (((tclr & TCLR_PTV_MASK) >> 2) + 1); + else + prescaler = 1; + + /* Get the reload count */ + tldr = omap3_gptimer_readl(timer, OMAP3_GPT_TLDR); + + OMAP3_GPTIMER_UNLOCK(timer); + + + /* Calculate the tick freq */ + tmr_freq = (src_freq / prescaler); + + /* If auto-reload mode is set and the reload count is not zero then the + * frequency is the period between overflows. + */ + if ((tclr & TCLR_AR) && (tldr != 0x00000000)) { + tmr_freq /= ((0xffffffff - tldr) + 1); + } + + + if (freq != NULL) + *freq = tmr_freq; + + return (0); +} + + /** - * omap_gptimer_activate - configures the timer + * omap3_gptimer_activate - configures the timer * @n: the number of the timer (first timer is number 1) * @flags: defines the type of timer to turn on * @time_ns: the period of the timer in nanoseconds @@ -220,11 +338,11 @@ * Returns 0 on success, otherwise an error code */ int -omap_gptimer_activate(unsigned int n, unsigned int flags, unsigned int time_us, +omap3_gptimer_activate(unsigned int n, unsigned int flags, unsigned int time_us, void (*callback)(void *data), void *data) { - struct omap_gptimer_softc *sc = g_omap3_gptimer_sc; - struct omap_gptimer *timer; + struct omap3_gptimer_softc *sc = g_omap3_gptimer_sc; + struct omap3_gptimer *timer; uint32_t val; uint64_t tickcount; unsigned int freq; @@ -243,11 +361,11 @@ timer = &sc->sc_timers[n-1]; /* Sanity check the timer is availabe and not activated */ - if (!(timer->flags & OMAP_GPTIMER_AVAILABLE_FLAG)) { + if (!(timer->flags & OMAP3_GPTIMER_AVAILABLE_FLAG)) { device_printf(sc->sc_dev, "Error: timer %d not available\n", n); return (EINVAL); } - if (timer->flags & OMAP_GPTIMER_ACTIVATED_FLAG) { + if (timer->flags & OMAP3_GPTIMER_ACTIVATED_FLAG) { device_printf(sc->sc_dev, "Error: timer %d already activated\n", n); return (EINVAL); } @@ -277,13 +395,13 @@ /* Reset the timer and poll on the reset complete flag */ if (timer->profile == OMAP_GPTIMER_PROFILE_OMAP3) { - omap_gptimer_writel(timer, OMAP3_GPT_TIOCP_CFG, 0x2); + omap3_gptimer_writel(timer, OMAP3_GPT_TIOCP_CFG, 0x2); /* TODO: add a timeout */ - while ((omap_gptimer_readl(timer, OMAP3_GPT_TISTAT) & 0x01) == 0x00) + while ((omap3_gptimer_readl(timer, OMAP3_GPT_TISTAT) & 0x01) == 0x00) continue; /* Clear the interrupt status */ - omap_gptimer_writel(timer, OMAP3_GPT_TISR, TCAR | OVF | MAT); + omap3_gptimer_writel(timer, OMAP3_GPT_TISR, TCAR | OVF | MAT); } /* If the user supplied a zero value we set a free running timer */ @@ -321,10 +439,10 @@ /* Adjust the count and apply the prescaler */ tickcount >>= (prescaler + 1); - val = omap3_gptimer_readl(timer, timer->tclr); + val = omap3_gptimer_readl(timer, OMAP3_GPT_TCLR); val &= ~TCLR_PTV_MASK; val |= TCLR_PRE | (prescaler << 2); - omap3_gptimer_writel(timer, timer->tclr, val); + omap3_gptimer_writel(timer, OMAP3_GPT_TCLR, val); } /* Calculate the start value */ @@ -335,7 +453,7 @@ } /* Load the start value into the count register */ - omap3_gptimer_writel(timer, timer->tcrr, startcount); + omap3_gptimer_writel(timer, OMAP3_GPT_TCRR, startcount); @@ -344,12 +462,12 @@ */ if (flags & OMAP3_GPTIMER_PERIODIC_FLAG) { /* Enable auto reload */ - val = omap3_gptimer_readl(timer, timer->tclr); + val = omap3_gptimer_readl(timer, OMAP3_GPT_TCLR); val |= TCLR_AR; - omap3_gptimer_writel(timer, timer->tclr, val); + omap3_gptimer_writel(timer, OMAP3_GPT_TCLR, val); /* Set the reload value */ - omap3_gptimer_writel(timer, timer->tldr, startcount); + omap3_gptimer_writel(timer, OMAP3_GPT_TLDR, startcount); } @@ -377,7 +495,7 @@ /* Finally set the activated flag */ - timer->flags |= OMAP_GPTIMER_ACTIVATED_FLAG; + timer->flags |= OMAP3_GPTIMER_ACTIVATED_FLAG; OMAP3_GPTIMER_UNLOCK(timer); @@ -386,6 +504,127 @@ return (0); } +/** + * omap3_gptimer_start - starts a one-shot or periodic timer + * @n: the number of the timer (first timer is number 1) + * + * + * RETURNS: + * Returns 0 on success, otherwise an error code + */ +int +omap3_gptimer_start(unsigned int n) +{ + return 0; +} + +/** + * omap3_gptimer_stop - stops a one-shot or periodic timer + * @n: the number of the timer (first timer is number 1) + * + * + * RETURNS: + * Returns 0 on success, otherwise an error code + */ +int +omap3_gptimer_stop(unsigned int n) +{ + return 0; +} + +/** + * omap3_gptimer_set_intr_filter - sets a filter + * @n: the number of the timer (first timer is number 1) + * + * + * RETURNS: + * Returns 0 on success, otherwise an error code + */ +int +omap3_gptimer_set_intr_filter(unsigned int n, driver_filter_t filter) +{ + struct omap3_gptimer_softc *sc = g_omap3_gptimer_sc; + struct omap3_gptimer *timer; + uint32_t val; + + /* Sanity checks */ + if (sc == NULL) + return (ENOMEM); + if ((n == 0) || (n > sc->sc_num_timers)) + return (EINVAL); + + /* Get a pointer to the individual timer struct */ + timer = &sc->sc_timers[n-1]; + + OMAP3_GPTIMER_LOCK(timer); + + /* If a callback is already installed this won't work */ + if (timer->callback != NULL) { + OMAP3_GPTIMER_UNLOCK(timer); + return(EINVAL); + } + + /* Sanity check the timer is already activated and periodic type */ + if ((timer->flags & (OMAP3_GPTIMER_ACTIVATED_FLAG | OMAP3_GPTIMER_PERIODIC_FLAG)) + != (OMAP3_GPTIMER_ACTIVATED_FLAG | OMAP3_GPTIMER_PERIODIC_FLAG)) { + OMAP3_GPTIMER_UNLOCK(timer); + return(EINVAL); + } + + + /* Attempt to activate the interrupt for the tick */ + if (bus_setup_intr(sc->sc_dev, timer->irq_res, INTR_TYPE_CLK, + filter, NULL, NULL, &timer->irq_h)) { + device_printf(sc->sc_dev, "Error: failed to activate interrupt\n"); + OMAP3_GPTIMER_UNLOCK(timer); + return(EINVAL); + } + + + /* Enable the overflow interrupts */ + if (timer->profile == OMAP_GPTIMER_PROFILE_OMAP3) { + val = omap3_gptimer_readl(timer, OMAP3_GPT_TIER); + val |= OVF; + omap3_gptimer_writel(timer, OMAP3_GPT_TIER, val); + } + + OMAP3_GPTIMER_UNLOCK(timer); + + return(0); +} + +/** + * omap3_gptimer_intr_filter_ack - acknowledges a timer interrupt + * @n: the number of the timer (first timer is number 1) + * + * This function should only be called from filter interrupt handler installed + * by calling the omap_gptimer_set_intr_filter() function. + * + * RETURNS: + * Nothing + */ +void +omap3_gptimer_intr_filter_ack(unsigned int n) +{ + struct omap3_gptimer_softc *sc = g_omap3_gptimer_sc; + struct omap3_gptimer *timer; + uint32_t stat; + + /* Get a pointer to the individual timer struct */ + timer = &sc->sc_timers[n-1]; + + OMAP3_GPTIMER_LOCK(timer); + + /* Read the interrupt status flag and clear it */ + /* Read the status and it with the enable flag */ + stat = omap3_gptimer_readl(timer, OMAP3_GPT_TISR); + stat &= omap3_gptimer_readl(timer, OMAP3_GPT_TIER); + + /* Clear the status flag */ + omap3_gptimer_writel(timer, OMAP3_GPT_TISR, stat); + OMAP3_GPTIMER_UNLOCK(timer); +} + /** @@ -416,7 +655,7 @@ DELAY(int usec) { int32_t counts; - uint32_t first, last; + //uint32_t first, last; if (omap3_gptimer_tc_tmr == NULL) { for (; usec > 0; usec--) @@ -430,9 +669,75 @@ static void omap3_gptimer_intr(void *arg) { + struct omap3_gptimer *timer = (struct omap3_gptimer *) arg; + void (*callback)(void *data); + void* callback_data; + uint32_t stat = 0x0000; + + OMAP3_GPTIMER_LOCK(timer); + + /* Read the interrupt status flag and clear it */ + if (timer->profile == OMAP_GPTIMER_PROFILE_OMAP3) { + + /* Read the status and it with the enable flag */ + stat = omap3_gptimer_readl(timer, OMAP3_GPT_TISR); + stat &= omap3_gptimer_readl(timer, OMAP3_GPT_TIER); + + /* Clear the status flag */ + omap3_gptimer_writel(timer, OMAP3_GPT_TISR, stat); + } + + /* Store the callback details before releasing the lock */ + callback = timer->callback; + callback_data = timer->callback_data; + + OMAP3_GPTIMER_UNLOCK(timer); + + /* Check if an actual overflow interrupt */ + if ((stat & OVF) && (callback != NULL)) + callback(timer->callback_data); +} + +/** + * omap3_clk_intr - interrupt handler for the tick timer (GPTIMER10) + * @arg: the trapframe, needed for the hardclock system function. + * + * This interrupt is triggered every hz times a second. It's role is basically + * to just clear the interrupt status and set it up for triggering again, plus + * tell the system a tick timer has gone off by calling the hardclock() + * function from the kernel API. + * + * RETURNS: + * Always returns FILTER_HANDLED. + */ +static int +omap3_timer_tick_intr(void *arg) +{ + struct trapframe *frame = arg; +#if defined(OMAP3_HEARTBEAT_GPIO) + static int heartbeat_cnt = 0; +#endif + + /* Acknowledge the interrupt */ + omap3_gptimer_intr_filter_ack(TICKTIMER_GPTIMER); + + /* Heartbeat */ +#if defined(OMAP3_HEARTBEAT_GPIO) + if (heartbeat_cnt++ >= (hz/2)) { + //printf("[BRG] ** tick **\n"); + gpio_pin_toggle(OMAP3_HEARTBEAT_GPIO); + heartbeat_cnt = 0; + } +#endif + /* Do what we came here for */ + hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + + /* Indicate we've handed the interrupt */ + return (FILTER_HANDLED); } + static int omap3_gptimer_probe(device_t dev) { @@ -477,7 +782,7 @@ RF_ACTIVE | RF_SHAREABLE); // I decided to delete support for OMAP4 timers from the original code - aleek - rev = omap_gptimer_readl(timer, OMAP_GPT_TIDR); + rev = omap3_gptimer_readl(timer, OMAP3_GPT_TIDR); switch (rev) { case 0x00000013: /* OMAP3 without 1ms generation */ case 0x00000015: @@ -502,14 +807,14 @@ timer->source = (GPTIMER1_CLK + n); /* Finally mark the timer as available */ - timer->flags = OMAP_GPTIMER_AVAILABLE_FLAG; + timer->flags = OMAP3_GPTIMER_AVAILABLE_FLAG; } /* Store the number of timers installed */ sc->sc_num_timers = n; /* Store the timer structure globally - this driver should never be unloaded */ - g_omap_gptimer_sc = sc; + g_omap3_gptimer_sc = sc; /* setup GPTIMER10 for system ticks, and GPTIMER11 for general purpose counter */ @@ -519,17 +824,17 @@ tick = 1000000 / hz; /* Next setup one of the timers to be the system tick timer */ - if (omap3_gptimer_activate(TICKTIMER_GPTIMER, OMAP_GPTIMER_PERIODIC_FLAG, + if (omap3_gptimer_activate(TICKTIMER_GPTIMER, OMAP3_GPTIMER_PERIODIC_FLAG, tick, NULL, NULL)) { panic("Error: failed to activate system tick timer\n"); } /* Setup an interrupt filter for the timer */ - if (omap_gptimer_set_intr_filter(TICKTIMER_GPTIMER, omap3_timer_tick_intr)) + if (omap3_gptimer_set_intr_filter(TICKTIMER_GPTIMER, omap3_timer_tick_intr)) panic("Error: failed to start system tick timer\n"); /* Lastly start the tick timer */ - if (omap_gptimer_start(TICKTIMER_GPTIMER)) + if (omap3_gptimer_start(TICKTIMER_GPTIMER)) panic("Error: failed to start system tick timer\n"); omap3_gptimer_get_freq(TICKTIMER_GPTIMER, &timer_freq); @@ -538,42 +843,41 @@ /* Setup another timer to be the timecounter */ - if (omap3_gptimer_activate(TIMECOUNT_GPTIMER, OMAP_GPTIMER_PERIODIC_FLAG, 0, + if (omap3_gptimer_activate(TIMECOUNT_GPTIMER, OMAP3_GPTIMER_PERIODIC_FLAG, 0, NULL, NULL)) { printf("Error: failed to activate system tick timer\n"); - } else if (omap_gptimer_start(TIMECOUNT_GPTIMER)) { + } else if (omap3_gptimer_start(TIMECOUNT_GPTIMER)) { printf("Error: failed to start system tick timer\n"); } /* Save the system clock speed */ omap3_gptimer_get_freq(TIMECOUNT_GPTIMER, &timer_freq); - g_omap3_timecounter.tc_frequency = timer_freq; + omap3_gptimer_tc.tc_frequency = timer_freq; /* Setup the time counter */ - tc_init(&g_omap3_timecounter); + tc_init(&omap3_gptimer_tc); /* Calibrate the delay loop */ - omap3_calibrate_delay_loop(&g_omap3_timecounter); + omap3_calibrate_delay_loop(&omap3_gptimer_tc); /* Restore interrupt state */ restore_interrupts(oldirqstate); } -static device_method_t g_omap_gptimer_methods[] = { - DEVMETHOD(device_probe, omap_gptimer_probe), - DEVMETHOD(device_attach, omap_gptimer_attach), +static device_method_t g_omap3_gptimer_methods[] = { + DEVMETHOD(device_probe, omap3_gptimer_probe), + DEVMETHOD(device_attach, omap3_gptimer_attach), {0, 0}, }; -static driver_t g_omap_gptimer_driver = { - "omap_gptimer", - g_omap_gptimer_methods, - sizeof(struct omap_gptimer_softc), +static driver_t g_omap3_gptimer_driver = { + "omap3_gptimer", + g_omap3_gptimer_methods, + sizeof(struct omap3_gptimer_softc), }; -static devclass_t g_omap_gptimer_devclass; +static devclass_t g_omap3_gptimer_devclass; -DRIVER_MODULE(omap_gptimer, omap, g_omap_gptimer_driver, g_omap_gptimer_devclass, 0, 0); -MODULE_DEPEND(omap_gptimer, ti_prcm, 1, 1, 1); +DRIVER_MODULE(omap3_gptimer, omap, g_omap3_gptimer_driver, g_omap3_gptimer_devclass, 0, 0); +MODULE_DEPEND(omap3_gptimer, ti_prcm, 1, 1, 1); -} Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.h ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.h Wed Jun 13 14:20:15 2012 (r237609) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.h Wed Jun 13 14:38:54 2012 (r237610) @@ -12,23 +12,23 @@ #define OMAP3_GPT_TIDR 0x0000 #define OMAP3_GPT_TIOCP_CFG 0x0010 #define OMAP3_GPT_TISTAT 0x0014 -#define OMAP3_GPT_TISR 0x0018 -#define OMAP3_GPT_TIER 0x001C -#define OMAP3_GPT_TWER 0x0020 -#define OMAP3_GPT_TCLR 0x0024 -#define OMAP3_GPT_TCRR 0x0028 -#define OMAP3_GPT_TLDR 0x002C -#define OMAP3_GPT_TTGR 0x0030 -#define OMAP3_GPT_TWPS 0x0034 -#define OMAP3_GPT_TMAR 0x0038 -#define OMAP3_GPT_TCAR1 0x003C -#define OMAP3_GPT_TSICR 0x0040 -#define OMAP3_GPT_TCAR2 0x0044 -#define OMAP3_GPT_TPIR 0x0048 -#define OMAP3_GPT_TNIR 0x004C -#define OMAP3_GPT_TCVR 0x0050 -#define OMAP3_GPT_TOCR 0x0054 -#define OMAP3_GPT_TOWR 0x0058 +#define OMAP3_GPT_TISR 0x0018 +#define OMAP3_GPT_TIER 0x001C +#define OMAP3_GPT_TWER 0x0020 +#define OMAP3_GPT_TCLR 0x0024 +#define OMAP3_GPT_TCRR 0x0028 +#define OMAP3_GPT_TLDR 0x002C +#define OMAP3_GPT_TTGR 0x0030 +#define OMAP3_GPT_TWPS 0x0034 +#define OMAP3_GPT_TMAR 0x0038 +#define OMAP3_GPT_TCAR1 0x003C +#define OMAP3_GPT_TSICR 0x0040 +#define OMAP3_GPT_TCAR2 0x0044 +#define OMAP3_GPT_TPIR 0x0048 +#define OMAP3_GPT_TNIR 0x004C +#define OMAP3_GPT_TCVR 0x0050 +#define OMAP3_GPT_TOCR 0x0054 +#define OMAP3_GPT_TOWR 0x0058 /* GPT_TCLR Register bit fields */ #define TCLR_GPO_CFG (0x1 << 14) @@ -43,14 +43,30 @@ #define TCLR_AR (0x1 << 1) #define TCLR_ST (0x1 << 0) +/* The interrupt/status bits used in the timer registers. */ +#define TCAR (0x1 << 2) +#define OVF (0x1 << 1) +#define MAT (0x1 << 0) + /* * The following flags define the clocking source, if specified the timer will * be clocked from the 32Khz source, otherwise it clocked from the sysclk. */ -#define OMAP_GPTIMER_32KCLK_FLAG 0x00000100 +#define OMAP3_GPTIMER_32KCLK_FLAG 0x00000100 +/* Indicates if the timer should be periodic, if not specified the timer is + * one-shot and you have to call omap_timer_start() to restart the timer. + */ +#define OMAP3_GPTIMER_PERIODIC_FLAG 0x00000001 -/** +#define OMAP_GPTIMER_PROFILE_UNKNOWN -1 +#define OMAP_GPTIMER_PROFILE_OMAP3 3 + +// XXX @todo fix it, move somewhere +#define OMAP3_HEARTBEAT_GPIO 150 + + +/* * Macros for driver mutex locking */ #define OMAP3_GPTIMER_LOCK(_tmr) mtx_lock(&(_tmr)->mtx) @@ -58,7 +74,7 @@ #define OMAP3_GPTIMER_ASSERT_LOCKED(_tmr) mtx_assert(&(_tmr)->mtx, MA_OWNED); #define OMAP3_GPTIMER_ASSERT_UNLOCKED(_tmr) mtx_assert(&(_tmr)->mtx, MA_NOTOWNED); -/** +/* * Data structure per Timer. */ struct omap3_gptimer { @@ -66,8 +82,8 @@ /* Flags indicating current and configured status */ unsigned int flags; -#define OMAP_GPTIMER_AVAILABLE_FLAG 0x01000000 -#define OMAP_GPTIMER_ACTIVATED_FLAG 0x02000000 +#define OMAP3_GPTIMER_AVAILABLE_FLAG 0x01000000 +#define OMAP3_GPTIMER_ACTIVATED_FLAG 0x02000000 /* Lock taken when configuring the registers */ struct mtx mtx; @@ -95,7 +111,7 @@ /** * Timer driver context, allocated and stored globally, this driver is not - * intended to ever be unloaded (see g_omap_gptimer_sc). + * intended to ever be unloaded (see g_omap3_gptimer_sc). * */ struct omap3_gptimer_softc { @@ -106,6 +122,8 @@ }; +void +omap3_gptimer_intr_filter_ack(unsigned int n); static unsigned omap3_gptimer_tc_get_timecount(struct timecounter *tc); @@ -118,17 +136,33 @@ omap3_gptimer_writel(struct omap3_gptimer *timer, bus_size_t off, uint32_t val); int -omap_gptimer_activate(unsigned int n, unsigned int flags, unsigned int time_us, +omap3_gptimer_activate(unsigned int n, unsigned int flags, unsigned int time_us, void (*callback)(void *data), void *data); +int +omap3_gptimer_start(unsigned int n); + +int +omap3_gptimer_stop(unsigned int n); + +int +omap3_gptimer_get_freq(unsigned int n, uint32_t *freq); + +static int +omap3_calibrate_delay_loop(struct timecounter *tc); + +int +omap3_gptimer_set_intr_filter(unsigned int n, driver_filter_t filter); + static void omap3_gptimer_intr(void *arg); +static int +omap3_timer_tick_intr(void *arg); static int omap3_gptimer_probe(device_t dev); - static int omap3_gptimer_attach(device_t dev); Modified: soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts Wed Jun 13 14:20:15 2012 (r237609) +++ soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts Wed Jun 13 14:38:54 2012 (r237610) @@ -59,6 +59,20 @@ reg = < 0x48200000 0x1000 >; }; + GPIO: gpio { + #gpio-cells = <3>; + compatible = "ti,gpio"; + gpio-controller; + reg =< 0x48310000 0x1000 + 0x49050000 0x1000 + 0x49052000 0x1000 + 0x49054000 0x1000 + 0x49056000 0x1000 + 0x49058000 0x1000 >; + interrupts = < 29 30 31 32 33 34 >; + interrupt-parent = <&AINTC>; + }; + dmtimers@44E05000 { compatible = "ti,am37x-dmtimer"; #address-cells = <1>; From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 16:19:22 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id B78A0106564A for ; Wed, 13 Jun 2012 16:19:20 +0000 (UTC) (envelope-from tzabal@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 16:19:20 +0000 Date: Wed, 13 Jun 2012 16:19:20 +0000 From: tzabal@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613161920.B78A0106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237614 - in soc2012/tzabal/server-side/akcrs-release/9.0.0: etc/rc.d usr.sbin/crashreportd X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 16:19:23 -0000 Author: tzabal Date: Wed Jun 13 16:19:20 2012 New Revision: 237614 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237614 Log: Upload changes for the crashreportd daemon. Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/crashreportd.sh Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd ============================================================================== --- soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd Wed Jun 13 15:25:52 2012 (r237613) +++ soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd Wed Jun 13 16:19:20 2012 (r237614) @@ -9,8 +9,13 @@ name="crashreportd" rcvar="crashreportd_enable" command="/usr/sbin/${name}" -# Check if this is correct, taken from sshd rc.d script -pidfile="/var/run/${name}.pid" +command_args="0<&- 1>/dev/null 2>&1 &" +#pidfile="/var/run/${name}.pid" load_rc_config $name run_rc_command "$1" + +# FIX: Make the rc.d script to support all the default arguments. +# Work: start, rcvar +# Not work: stop, restart, status, (poll?) +# Check with: ps ux | grep crashreportd \ No newline at end of file Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/crashreportd.sh ============================================================================== --- soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/crashreportd.sh Wed Jun 13 15:25:52 2012 (r237613) +++ soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/crashreportd.sh Wed Jun 13 16:19:20 2012 (r237614) @@ -1,3 +1,18 @@ #!/bin/sh -echo 'Inside /usr/sbin/crashreportd.' +interval=10 +#reportsdir="/home/reporter" +#echo "`whoami` is executing /usr/sbin/crashreportd" +dfile="/home/tzabal/dfile" +touch ${dfile} + +count=1 +while : ; do + #reports=`echo "${reportsdir}/*"` + #for report in ${reports}; do + # echo "report = ${report}" + #done + echo "pass ${count}" >> ${dfile} + count=$((count+1)) + sleep ${interval} +done From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 16:42:49 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id B2D4D106564A for ; Wed, 13 Jun 2012 16:42:47 +0000 (UTC) (envelope-from rudot@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 16:42:47 +0000 Date: Wed, 13 Jun 2012 16:42:47 +0000 From: rudot@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613164247.B2D4D106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237615 - soc2012/rudot/sys/kern X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 16:42:49 -0000 Author: rudot Date: Wed Jun 13 16:42:47 2012 New Revision: 237615 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237615 Log: per-user %cpu limits. First version - I let the code already present in the racct infrastructure do the work. Modified: soc2012/rudot/sys/kern/kern_racct.c Modified: soc2012/rudot/sys/kern/kern_racct.c ============================================================================== --- soc2012/rudot/sys/kern/kern_racct.c Wed Jun 13 16:19:20 2012 (r237614) +++ soc2012/rudot/sys/kern/kern_racct.c Wed Jun 13 16:42:47 2012 (r237615) @@ -922,7 +922,7 @@ struct timeval wallclock; uint64_t runtime; u_int pct; - uint64_t limit; + int error; for (;;) { sx_slock(&allproc_lock); @@ -947,16 +947,10 @@ runtime = p->p_prev_runtime; #endif p->p_prev_runtime = runtime; - limit = racct_get_limit(p, RACCT_PCTCPU); pct = racct_getpcpu(p); mtx_lock(&racct_lock); - /* - * I use _force_ here because we always want to have - * the real value in the RACCT_PCTCPU resource - * regardless of the limits set. - */ - racct_set_force_locked(p, RACCT_PCTCPU, pct); - if (pct >= limit) { + error = racct_set_locked(p, RACCT_PCTCPU, pct); + if (error) { racct_proc_disable(p); } else if (racct_proc_disabled(p)) { racct_proc_enable(p); From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 18:01:46 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 2A9B8106564A for ; Wed, 13 Jun 2012 18:01:44 +0000 (UTC) (envelope-from aleek@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 18:01:44 +0000 Date: Wed, 13 Jun 2012 18:01:44 +0000 From: aleek@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613180144.2A9B8106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237621 - in soc2012/aleek/beaglexm-armv6/sys/arm/ti: . am37x X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 18:01:46 -0000 Author: aleek Date: Wed Jun 13 18:01:43 2012 New Revision: 237621 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237621 Log: fixed problem with FDT Interrupt decoding Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.h soc2012/aleek/beaglexm-armv6/sys/arm/ti/common.c Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c Wed Jun 13 17:45:38 2012 (r237620) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.c Wed Jun 13 18:01:43 2012 (r237621) @@ -42,7 +42,7 @@ #include #include #include -#include "sys/gpio.h"" +#include #include #include @@ -120,7 +120,12 @@ oldirqstate = disable_interrupts(I32_bit); start = omap3_gptimer_tc_get_timecount(tc); - __omap3_delay(10240); + //__omap3_delay(10240); + for (int usec=10240; usec > 0; usec--) + for (int32_t counts = 200; counts > 0; counts--) + /* Prevent gcc from optimizing out the loop */ + cpufunc_nullop(); + end = omap3_gptimer_tc_get_timecount(tc); restore_interrupts(oldirqstate); @@ -515,6 +520,29 @@ int omap3_gptimer_start(unsigned int n) { + struct omap3_gptimer_softc *sc = g_omap3_gptimer_sc; + struct omap3_gptimer *timer; + uint32_t val; + + /* Sanity checks */ + if (sc == NULL) + return (ENOMEM); + if ((n == 0) || (n > OMAP3_NUM_TIMERS)) + return (EINVAL); + + /* Get a pointer to the individual timer struct */ + timer = &sc->sc_timers[n-1]; + if (!(timer->flags & OMAP3_GPTIMER_ACTIVATED_FLAG)) + return (EINVAL); + + OMAP3_GPTIMER_LOCK(timer); + + val = omap3_gptimer_readl(timer, OMAP3_GPT_TCLR); + val |= TCLR_ST; + omap3_gptimer_writel(timer, OMAP3_GPT_TCLR, val); + + OMAP3_GPTIMER_UNLOCK(timer); + return 0; } @@ -529,6 +557,29 @@ int omap3_gptimer_stop(unsigned int n) { + struct omap3_gptimer_softc *sc = g_omap3_gptimer_sc; + struct omap3_gptimer *timer; + uint32_t val; + + /* Sanity checks */ + if (sc == NULL) + return (ENOMEM); + if ((n == 0) || (n > OMAP3_NUM_TIMERS)) + return (EINVAL); + + /* Get a pointer to the individual timer struct */ + timer = &sc->sc_timers[n-1]; + if (!(timer->flags & OMAP3_GPTIMER_ACTIVATED_FLAG)) + return (EINVAL); + + OMAP3_GPTIMER_LOCK(timer); + + val = omap3_gptimer_readl(timer, OMAP3_GPT_TCLR); + val &= ~TCLR_ST; + omap3_gptimer_writel(timer, OMAP3_GPT_TCLR, val); + + OMAP3_GPTIMER_UNLOCK(timer); + return 0; } @@ -741,6 +792,7 @@ static int omap3_gptimer_probe(device_t dev) { + printf( "GPTIMER HABABABA\n" ); device_set_desc(dev, "TI OMAP3 General Purpose Timers"); return (0); } @@ -757,6 +809,8 @@ u_int oldirqstate; unsigned int timer_freq; + device_printf( dev, "Attaching the device..." ); + // Setup the basics sc->sc_dev = dev; @@ -781,6 +835,10 @@ timer->irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_ACTIVE | RF_SHAREABLE); + /* Mutex to protect the shared data structures */ + snprintf(name, 32, "omap_gptimer%u", (n + 1)); + mtx_init(&timer->mtx, device_get_nameunit(dev), name, MTX_SPIN); + // I decided to delete support for OMAP4 timers from the original code - aleek rev = omap3_gptimer_readl(timer, OMAP3_GPT_TIDR); switch (rev) { @@ -863,6 +921,7 @@ /* Restore interrupt state */ restore_interrupts(oldirqstate); + return 0; } static device_method_t g_omap3_gptimer_methods[] = { Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.h ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.h Wed Jun 13 17:45:38 2012 (r237620) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_gptimer.h Wed Jun 13 18:01:43 2012 (r237621) @@ -63,7 +63,7 @@ #define OMAP_GPTIMER_PROFILE_OMAP3 3 // XXX @todo fix it, move somewhere -#define OMAP3_HEARTBEAT_GPIO 150 +//#define OMAP3_HEARTBEAT_GPIO 150 /* Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/common.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/common.c Wed Jun 13 17:45:38 2012 (r237620) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/common.c Wed Jun 13 18:01:43 2012 (r237621) @@ -70,7 +70,7 @@ } #endif -#ifdef SOC_TI_AM335X +#if defined( SOC_TI_AM335X ) || defined( SOC_TI_AM37X ) static int fdt_aintc_decode_ic(phandle_t node, pcell_t *intr, int *interrupt, int *trig, int *pol) @@ -94,5 +94,9 @@ #ifdef SOC_TI_AM335X &fdt_aintc_decode_ic, #endif +#ifdef SOC_TI_AM37X + &fdt_aintc_decode_ic, +#endif + NULL }; From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 19:37:44 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 70C22106566C for ; Wed, 13 Jun 2012 19:37:42 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 19:37:42 +0000 Date: Wed, 13 Jun 2012 19:37:42 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613193742.70C22106566C@hub.freebsd.org> Cc: Subject: socsvn commit: r237623 - in soc2012/jhagewood/diff3: . diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 19:37:44 -0000 Author: jhagewood Date: Wed Jun 13 19:37:41 2012 New Revision: 237623 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237623 Log: Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c ============================================================================== --- soc2012/jhagewood/diff3/diff3/diff3prog.c Wed Jun 13 18:57:27 2012 (r237622) +++ soc2012/jhagewood/diff3/diff3/diff3prog.c Wed Jun 13 19:37:41 2012 (r237623) @@ -165,9 +165,9 @@ __dead void usage(void); enum { - HELP_OPT = CHAR_MAX + 1, - STRIPCR_OPT, - DIFFPROG_OPT, + HELP_OPT = CHAR_MAX + 1, + STRIPCR_OPT, + DIFFPROG_OPT, }; #define OPTIONS "3aAeEiL:mTvxX" @@ -321,7 +321,7 @@ (*dd)[i].new.from = (*dd)[i-1].new.to; } (void)fclose(fp[0]); - return(i); + return (i); } int @@ -332,7 +332,7 @@ nn = 0; while (isdigit((unsigned char)(**lc))) nn = nn*10 + *(*lc)++ - '0'; - return(nn); + return (nn); } char * @@ -342,9 +342,9 @@ while ((line = getline(b, NULL))) { if (isdigit((unsigned char)line[0])) - return(line); + return (line); } - return(NULL); + return (NULL); } char * @@ -356,7 +356,7 @@ static size_t bufsize; if ((cp = fgetln(b, &len)) == NULL) - return(NULL); + return (NULL); if (cp[len - 1] != '\n') len++; @@ -372,7 +372,7 @@ buf[len] = '\0'; if (n != NULL) *n = len; - return(buf); + return (buf); } void @@ -487,19 +487,19 @@ size_t i; if (aflag || f == NULL) - return(1); + return (1); rewind(f); errno = 0; for (i = 0; i <= BUFSIZ; i++) { if ((ch = fgetwc(f)) == WEOF) { if (errno == EILSEQ) - return(0); + return (0); break; } if (!iswspace(ch) && iswcntrl(ch)) - return(0); + return (0); } - return(1); + return (1); } void @@ -580,7 +580,7 @@ printf("%s%s", Tflag == 1? "\t" : pr, line); cline[i]++; } - return((int) n); + return ((int) n); } /* @@ -595,7 +595,7 @@ int nline; if (r1->to-r1->from != r2->to-r2->from) - return(0); + return (0); (void)skip(0, r1->from, NULL); (void)skip(1, r2->from, NULL); nchar = 0; @@ -608,12 +608,12 @@ nchar++; if (c != d) { repos(nchar); - return(0); + return (0); } } while (c != '\n'); } repos(nchar); - return(1); + return (1); } void @@ -663,7 +663,7 @@ { if (((dup + 1) & eflag) == 0) - return(j); + return (j); j++; overlap[j] = !dup; if (!dup) @@ -672,7 +672,7 @@ de[j].old.to = diff->old.to; de[j].new.from = de[j-1].new.to + skip(2, diff->new.from, NULL); de[j].new.to = de[j].new.from + skip(2, diff->new.to, NULL); - return(j); + return (j); } /* regurgitate */ @@ -701,7 +701,7 @@ printf("%da\n%s\n.\n", de[n].old.from - 1, f1mark); } } - if( iflag ) + if (iflag) printf("w\nq\n"); exit(overlapcnt); Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 18:57:27 2012 (r237622) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 19:37:41 2012 (r237623) @@ -11,7 +11,7 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 03:11:59.000000000 -0400 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 19:37:26.000000000 -0400 @@ -64,22 +64,31 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ @@ -62,11 +62,10 @@ __dead void usage(void); enum { -- HELP_OPT = CHAR_MAX + 1, -- STRIPCR_OPT, -+ HELP_OPT = CHAR_MAX + 1, -+ STRIPCR_OPT, - DIFFPROG_OPT, + HELP_OPT = CHAR_MAX + 1, + STRIPCR_OPT, +- DIFFPROG_OPT, ++ DIFFPROG_OPT, }; #define OPTIONS "3aAeEiL:mTvxX" @@ -153,15 +152,7 @@ } merge(m, n); exit(EXIT_SUCCESS); -@@ -304,17 +321,18 @@ readin(char *name, struct diff **dd) - (*dd)[i].new.from = (*dd)[i-1].new.to; - } - (void)fclose(fp[0]); -- return (i); -+ return(i); - } - - int +@@ -311,6 +328,7 @@ int number(char **lc) { int nn; @@ -169,41 +160,6 @@ nn = 0; while (isdigit((unsigned char)(**lc))) nn = nn*10 + *(*lc)++ - '0'; -- return (nn); -+ return(nn); - } - - char * -@@ -324,9 +342,9 @@ getchange(FILE *b) - - while ((line = getline(b, NULL))) { - if (isdigit((unsigned char)line[0])) -- return (line); -+ return(line); - } -- return (NULL); -+ return(NULL); - } - - char * -@@ -338,7 +356,7 @@ getline(FILE *b, size_t *n) - static size_t bufsize; - - if ((cp = fgetln(b, &len)) == NULL) -- return (NULL); -+ return(NULL); - - if (cp[len - 1] != '\n') - len++; -@@ -354,7 +372,7 @@ getline(FILE *b, size_t *n) - buf[len] = '\0'; - if (n != NULL) - *n = len; -- return (buf); -+ return(buf); - } - - void @@ -367,8 +385,7 @@ merge(int m1, int m2) d2 = d23; j = 0; @@ -220,12 +176,12 @@ { - wint_t ch = L'\0'; - size_t i; -- -- if (aflag || f == NULL) -- return (1); + wint_t ch = L'\0'; + size_t i; +- if (aflag || f == NULL) +- return (1); +- - rewind(f); - errno = 0; - for (i = 0; i <= BUFSIZ; i++) { @@ -239,19 +195,19 @@ - } - return (1); + if (aflag || f == NULL) -+ return(1); ++ return (1); + rewind(f); + errno = 0; + for (i = 0; i <= BUFSIZ; i++) { + if ((ch = fgetwc(f)) == WEOF) { + if (errno == EILSEQ) -+ return(0); ++ return (0); + break; + } + if (!iswspace(ch) && iswcntrl(ch)) -+ return(0); ++ return (0); + } -+ return(1); ++ return (1); } void @@ -286,19 +242,15 @@ if (rold->to <= rold->from) printf("%da\n", rold->from - 1); else { -@@ -558,10 +578,9 @@ skip(int i, int from, char *pr) +@@ -558,7 +578,6 @@ skip(int i, int from, char *pr) trouble(); if (pr != NULL) printf("%s%s", Tflag == 1? "\t" : pr, line); - cline[i]++; } -- return ((int) n); -+ return((int) n); - } - - /* -@@ -571,12 +590,12 @@ skip(int i, int from, char *pr) + return ((int) n); +@@ -571,7 +590,7 @@ skip(int i, int from, char *pr) int duplicate(struct range *r1, struct range *r2) { @@ -307,27 +259,6 @@ int nchar; int nline; - if (r1->to-r1->from != r2->to-r2->from) -- return (0); -+ return(0); - (void)skip(0, r1->from, NULL); - (void)skip(1, r2->from, NULL); - nchar = 0; -@@ -589,12 +608,12 @@ duplicate(struct range *r1, struct range - nchar++; - if (c != d) { - repos(nchar); -- return (0); -+ return(0); - } - } while (c != '\n'); - } - repos(nchar); -- return (1); -+ return(1); - } - - void @@ -606,9 +625,33 @@ repos(int nchar) (void)fseek(fp[i], (long)-nchar, SEEK_CUR); } @@ -362,26 +293,15 @@ errx(EXIT_FAILURE, "logic error"); } -@@ -618,8 +661,9 @@ trouble(void) +@@ -618,6 +661,7 @@ trouble(void) int edit(struct diff *diff, int dup, int j) { + if (((dup + 1) & eflag) == 0) -- return (j); -+ return(j); + return (j); j++; - overlap[j] = !dup; - if (!dup) -@@ -628,14 +672,14 @@ edit(struct diff *diff, int dup, int j) - de[j].old.to = diff->old.to; - de[j].new.from = de[j-1].new.to + skip(2, diff->new.from, NULL); - de[j].new.to = de[j].new.from + skip(2, diff->new.to, NULL); -- return (j); -+ return(j); - } - - /* regurgitate */ +@@ -635,7 +679,7 @@ edit(struct diff *diff, int dup, int j) __dead void edscript(int n) { @@ -390,14 +310,16 @@ char block[BUFSIZ]; for (n = n; n > 0; n--) { -@@ -657,7 +701,6 @@ edscript(int n) +@@ -657,8 +701,7 @@ edscript(int n) printf("%da\n%s\n.\n", de[n].old.from - 1, f1mark); } } - - if( iflag ) +- if( iflag ) ++ if (iflag) printf("w\nq\n"); + exit(overlapcnt); @@ -698,13 +741,30 @@ increase(void) szchanges = newsz; } From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 20:53:00 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 42647106564A for ; Wed, 13 Jun 2012 20:52:58 +0000 (UTC) (envelope-from aleek@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 20:52:58 +0000 Date: Wed, 13 Jun 2012 20:52:58 +0000 From: aleek@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613205258.42647106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237628 - in soc2012/aleek/beaglexm-armv6/sys: arm/ti/am37x boot/fdt/dts X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 20:53:00 -0000 Author: aleek Date: Wed Jun 13 20:52:57 2012 New Revision: 237628 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237628 Log: started to bringing up PRCM for omap3/am37x Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_prcm.c soc2012/aleek/beaglexm-armv6/sys/boot/fdt/dts/beagleboardxm.dts Modified: soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_prcm.c ============================================================================== --- soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_prcm.c Wed Jun 13 19:53:29 2012 (r237627) +++ soc2012/aleek/beaglexm-armv6/sys/arm/ti/am37x/am37x_prcm.c Wed Jun 13 20:52:57 2012 (r237628) @@ -1,5 +1,6 @@ /*- - * Copyright (c) 2012 Damjan Marion + * Copyright (c) 2011 + * Ben Gray . * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -11,10 +12,10 @@ * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) @@ -29,130 +30,230 @@ #include #include -#include #include #include -#include +#include +#include #include -#include -#include -#include +#include +#include + #include #include +#include #include +#include #include #include -#include #include +#include -#include -#include -#include -#include -#include -#include -#define CM_PER 0 -#define CM_PER_L4LS_CLKSTCTRL (CM_PER + 0x000) -#define CM_PER_L3S_CLKSTCTRL (CM_PER + 0x004) -#define CM_PER_L3_CLKSTCTRL (CM_PER + 0x00C) -#define CM_PER_CPGMAC0_CLKCTRL (CM_PER + 0x014) -#define CM_PER_USB0_CLKCTRL (CM_PER + 0x01C) -#define CM_PER_TPTC0_CLKCTRL (CM_PER + 0x024) -#define CM_PER_MMC0_CLKCTRL (CM_PER + 0x03C) -#define CM_PER_I2C2_CLKCTRL (CM_PER + 0x044) -#define CM_PER_I2C1_CLKCTRL (CM_PER + 0x048) -#define CM_PER_TIMER7_CLKCTRL (CM_PER + 0x07C) -#define CM_PER_TIMER2_CLKCTRL (CM_PER + 0x080) -#define CM_PER_TIMER3_CLKCTRL (CM_PER + 0x084) -#define CM_PER_TIMER4_CLKCTRL (CM_PER + 0x088) -#define CM_PER_GPIO1_CLKCTRL (CM_PER + 0x0AC) -#define CM_PER_GPIO2_CLKCTRL (CM_PER + 0x0B0) -#define CM_PER_GPIO3_CLKCTRL (CM_PER + 0x0B4) -#define CM_PER_TPCC_CLKCTRL (CM_PER + 0x0BC) -#define CM_PER_L3_INSTR_CLKCTRL (CM_PER + 0x0DC) -#define CM_PER_L3_CLKCTRL (CM_PER + 0x0E0) -#define CM_PER_TIMER5_CLKCTRL (CM_PER + 0x0EC) -#define CM_PER_TIMER6_CLKCTRL (CM_PER + 0x0F0) -#define CM_PER_MMC1_CLKCTRL (CM_PER + 0x0F4) -#define CM_PER_MMC2_CLKCTRL (CM_PER + 0x0F8) -#define CM_PER_TPTC1_CLKCTRL (CM_PER + 0x0FC) -#define CM_PER_TPTC2_CLKCTRL (CM_PER + 0x100) -#define CM_PER_OCPWP_L3_CLKSTCTRL (CM_PER + 0x12C) -#define CM_PER_OCPWP_CLKCTRL (CM_PER + 0x130) -#define CM_PER_CPSW_CLKSTCTRL (CM_PER + 0x144) - -#define CM_WKUP 0x400 -#define CM_WKUP_CLKSTCTRL (CM_WKUP + 0x000) -#define CM_WKUP_CONTROL_CLKCTRL (CM_WKUP + 0x004) -#define CM_WKUP_GPIO0_CLKCTRL (CM_WKUP + 0x008) -#define CM_WKUP_CM_L3_AON_CLKSTCTRL (CM_WKUP + 0x01C) -#define CM_WKUP_CM_CLKSEL_DPLL_MPU (CM_WKUP + 0x02C) -#define CM_WKUP_CM_CLKDCOLDO_DPLL_PER (CM_WKUP + 0x07C) -#define CM_WKUP_I2C0_CLKCTRL (CM_WKUP + 0x0B8) - -#define CM_DPLL 0x500 -#define CLKSEL_TIMER7_CLK (CM_DPLL + 0x004) -#define CLKSEL_TIMER2_CLK (CM_DPLL + 0x008) -#define CLKSEL_TIMER3_CLK (CM_DPLL + 0x00C) -#define CLKSEL_TIMER4_CLK (CM_DPLL + 0x010) -#define CLKSEL_TIMER5_CLK (CM_DPLL + 0x018) -#define CLKSEL_TIMER6_CLK (CM_DPLL + 0x01C) - -#define PRM_DEVICE_OFFSET 0xF00 -#define PRM_RSTCTRL (PRM_DEVICE_OFFSET + 0x00) - -struct am335x_prcm_softc { - struct resource * res[2]; - bus_space_tag_t bst; - bus_space_handle_t bsh; -}; +/* + * This file defines the clock configuration for the OMAP3xxx series of + * devices. + * + * How This is Suppose to Work + * =========================== + * - There is a top level omap_prcm module that defines all OMAP SoC drivers + * should use to enable/disable the system clocks regardless of the version + * of OMAP device they are running on. This top level PRCM module is just + * a thin shim to chip specific functions that perform the donkey work of + * configuring the clock - this file is the 'donkey' for OMAP35xx devices. + * + * - The key bit in this file is the omap_clk_devmap array, it's + * used by the omap_prcm driver to determine what clocks are valid and which + * functions to call to manipulate them. + * + * - In essence you just need to define some callbacks for each of the + * clocks and then you're done. + * + * - The other thing worth noting is that when the omap_prcm device + * is registered you typically pass in some memory ranges which are the + * SYS_MEMORY resources. These resources are in turn allocated using + * bus_allocate_resources(...) and the resource handles are passed to all + * individual clock callback handlers. + * + * + * + * + */ -static struct resource_spec am335x_prcm_spec[] = { - { SYS_RES_MEMORY, 0, RF_ACTIVE }, - { -1, 0 } -}; -static struct am335x_prcm_softc *am335x_prcm_sc = NULL; +void +omap3_clk_init(device_t dev, int prio); -static int am335x_clk_generic_activate(struct ti_clock_dev *clkdev); -static int am335x_clk_generic_deactivate(struct ti_clock_dev *clkdev); -static int am335x_clk_generic_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc); -static int am335x_clk_hsmmc_get_source_freq(struct ti_clock_dev *clkdev, unsigned int *freq); -static int am335x_clk_get_sysclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq); -static int am335x_clk_get_arm_fclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq); -static void am335x_prcm_reset(void); -static int am335x_clk_cpsw_activate(struct ti_clock_dev *clkdev); -static int am335x_clk_musb0_activate(struct ti_clock_dev *clkdev); +static int +omap3_clk_generic_activate(const struct ti_clock_dev *clkdev, + struct resource* mem_res[]); + +static int +omap3_clk_generic_deactivate(const struct ti_clock_dev *clkdev, + struct resource* mem_res[]); + +static int +omap3_clk_generic_accessible(const struct ti_clock_dev *clkdev, + struct resource* mem_res[]); + +static int +omap3_clk_generic_set_source(const struct ti_clock_dev *clkdev, clk_src_t clksrc, + struct resource* mem_res[]); + +static int +omap3_clk_generic_get_source_freq(const struct ti_clock_dev *clkdev, + unsigned int *freq, + struct resource* mem_res[]); + + +static int +omap3_clk_gptimer_get_source_freq(const struct ti_clock_dev *clkdev, + unsigned int *freq, + struct resource* mem_res[]); +static int +omap3_clk_gptimer_set_source(const struct ti_clock_dev *clkdev, + clk_src_t clksrc, struct resource* mem_res[]); + + + +static int +omap3_clk_alwayson_null_func(const struct ti_clock_dev *clkdev, + struct resource* mem_res[]); -#define AM335X_GENERIC_CLOCK_DEV(i) \ + + +static int +omap3_clk_get_sysclk_freq(const struct ti_clock_dev *clkdev, + unsigned int *freq, struct resource* mem_res[]); + +static int +omap3_clk_get_arm_fclk_freq(const struct ti_clock_dev *clkdev, + unsigned int *freq, struct resource* mem_res[]); + + + +static int +omap3_clk_hsusbhost_activate(const struct ti_clock_dev *clkdev, + struct resource* mem_res[]); + +static int +omap3_clk_hsusbhost_deactivate(const struct ti_clock_dev *clkdev, + struct resource* mem_res[]); + + + + +#define FREQ_96MHZ 96000000 +#define FREQ_64MHZ 64000000 +#define FREQ_48MHZ 48000000 +#define FREQ_32KHZ 32000 + + + +/** + * Only one memory regions is needed for OMAP35xx clock control (unlike OMAP4) + * + * CM Instance - 0x4800 4000 : 0x4800 5500 + * PRM Instance - 0x4830 6000 : 0x4830 8000 + * + */ +#define CM_INSTANCE_MEM_REGION 0 +#define PRM_INSTANCE_MEM_REGION 1 + +#define IVA2_CM_OFFSET 0x0000 +#define OCP_SYSTEM_CM_OFFSET 0x0800 +#define MPU_CM_OFFSET 0x0900 +#define CORE_CM_OFFSET 0x0A00 +#define SGX_CM_OFFSET 0x0B00 +#define WKUP_CM_OFFSET 0x0C00 +#define CLOCK_CTRL_CM_OFFSET 0x0D00 +#define DSS_CM_OFFSET 0x0E00 +#define CAM_CM_OFFSET 0x0F00 +#define PER_CM_OFFSET 0x1000 +#define EMU_CM_OFFSET 0x1100 +#define GLOBAL_CM_OFFSET 0x1200 +#define NEON_CM_OFFSET 0x1300 +#define USBHOST_CM_OFFSET 0x1400 + +#define IVA2_PRM_OFFSET 0x0000 +#define OCP_SYSTEM_PRM_OFFSET 0x0800 +#define MPU_PRM_OFFSET 0x0900 +#define CORE_PRM_OFFSET 0x0A00 +#define SGX_PRM_OFFSET 0x0B00 +#define WKUP_PRM_OFFSET 0x0C00 +#define CLOCK_CTRL_PRM_OFFSET 0x0D00 +#define DSS_PRM_OFFSET 0x0E00 +#define CAM_PRM_OFFSET 0x0F00 +#define PER_PRM_OFFSET 0x1000 +#define EMU_PRM_OFFSET 0x1100 +#define GLOBAL_PRM_OFFSET 0x1200 +#define NEON_PRM_OFFSET 0x1300 +#define USBHOST_PRM_OFFSET 0x1400 + + + + + + +/** + * omap_clk_devmap - Array of clock devices available on OMAP3xxx devices + * + * This map only defines which clocks are valid and the callback functions + * for clock activate, deactivate, etc. It is used by the top level omap_prcm + * driver. + * + * The actual details of the clocks (config registers, bit fields, sources, + * etc) are in the private g_omap3_clk_details array below. + * + */ + +#define OMAP3_GENERIC_CLOCK_DEV(i) \ { .id = (i), \ - .clk_activate = am335x_clk_generic_activate, \ - .clk_deactivate = am335x_clk_generic_deactivate, \ - .clk_set_source = am335x_clk_generic_set_source, \ - .clk_accessible = NULL, \ + .clk_activate = omap3_clk_generic_activate, \ + .clk_deactivate = omap3_clk_generic_deactivate, \ + .clk_set_source = omap3_clk_generic_set_source, \ + .clk_accessible = omap3_clk_generic_accessible, \ + .clk_get_source_freq = omap3_clk_generic_get_source_freq \ + } + +#define OMAP3_GPTIMER_CLOCK_DEV(i) \ + { .id = (i), \ + .clk_activate = omap3_clk_generic_activate, \ + .clk_deactivate = omap3_clk_generic_deactivate, \ + .clk_set_source = omap3_clk_gptimer_set_source, \ + .clk_accessible = omap3_clk_generic_accessible, \ + .clk_get_source_freq = omap3_clk_gptimer_get_source_freq \ + } + +#define OMAP3_ALWAYSON_CLOCK_DEV(i) \ + { .id = (i), \ + .clk_activate = omap3_clk_alwayson_null_func, \ + .clk_deactivate = omap3_clk_alwayson_null_func, \ + .clk_set_source = NULL, \ + .clk_accessible = omap3_clk_alwayson_null_func, \ .clk_get_source_freq = NULL \ } -#define AM335X_MMCHS_CLOCK_DEV(i) \ +#define OMAP3_HSUSBHOST_CLOCK_DEV(i) \ { .id = (i), \ - .clk_activate = am335x_clk_generic_activate, \ - .clk_deactivate = am335x_clk_generic_deactivate, \ - .clk_set_source = am335x_clk_generic_set_source, \ - .clk_accessible = NULL, \ - .clk_get_source_freq = am335x_clk_hsmmc_get_source_freq \ + .clk_activate = omap3_clk_hsusbhost_activate, \ + .clk_deactivate = omap3_clk_hsusbhost_deactivate, \ + .clk_set_source = NULL, \ + .clk_accessible = omap3_clk_generic_accessible, \ + .clk_get_source_freq = NULL \ } -struct ti_clock_dev ti_clk_devmap[] = { - /* System clocks */ + +const struct ti_clock_dev omap_clk_devmap[] = { + + /* System clock */ { .id = SYS_CLK, .clk_activate = NULL, .clk_deactivate = NULL, .clk_set_source = NULL, .clk_accessible = NULL, - .clk_get_source_freq = am335x_clk_get_sysclk_freq, + .clk_get_source_freq = omap3_clk_get_sysclk_freq, }, /* MPU (ARM) core clocks */ { .id = MPU_CLK, @@ -160,375 +261,936 @@ .clk_deactivate = NULL, .clk_set_source = NULL, .clk_accessible = NULL, - .clk_get_source_freq = am335x_clk_get_arm_fclk_freq, - }, - /* CPSW Ethernet Switch core clocks */ - { .id = CPSW_CLK, - .clk_activate = am335x_clk_cpsw_activate, - .clk_deactivate = NULL, - .clk_set_source = NULL, - .clk_accessible = NULL, - .clk_get_source_freq = NULL, + .clk_get_source_freq = omap3_clk_get_arm_fclk_freq, }, - /* Mentor USB HS controller core clocks */ - { .id = MUSB0_CLK, - .clk_activate = am335x_clk_musb0_activate, - .clk_deactivate = NULL, - .clk_set_source = NULL, - .clk_accessible = NULL, - .clk_get_source_freq = NULL, - }, - /* DMTimer */ - AM335X_GENERIC_CLOCK_DEV(DMTIMER2_CLK), - AM335X_GENERIC_CLOCK_DEV(DMTIMER3_CLK), - AM335X_GENERIC_CLOCK_DEV(DMTIMER4_CLK), - AM335X_GENERIC_CLOCK_DEV(DMTIMER5_CLK), - AM335X_GENERIC_CLOCK_DEV(DMTIMER6_CLK), - AM335X_GENERIC_CLOCK_DEV(DMTIMER7_CLK), + /* UART device clocks */ + OMAP3_GENERIC_CLOCK_DEV(UART1_CLK), + OMAP3_GENERIC_CLOCK_DEV(UART2_CLK), + OMAP3_GENERIC_CLOCK_DEV(UART3_CLK), + OMAP3_GENERIC_CLOCK_DEV(UART4_CLK), + + /* Timer device source clocks */ + OMAP3_GPTIMER_CLOCK_DEV(GPTIMER1_CLK), + OMAP3_GPTIMER_CLOCK_DEV(GPTIMER2_CLK), + OMAP3_GPTIMER_CLOCK_DEV(GPTIMER3_CLK), + OMAP3_GPTIMER_CLOCK_DEV(GPTIMER4_CLK), + OMAP3_GPTIMER_CLOCK_DEV(GPTIMER5_CLK), + OMAP3_GPTIMER_CLOCK_DEV(GPTIMER6_CLK), + OMAP3_GPTIMER_CLOCK_DEV(GPTIMER7_CLK), + OMAP3_GPTIMER_CLOCK_DEV(GPTIMER8_CLK), + OMAP3_GPTIMER_CLOCK_DEV(GPTIMER9_CLK), + OMAP3_GPTIMER_CLOCK_DEV(GPTIMER10_CLK), + OMAP3_GPTIMER_CLOCK_DEV(GPTIMER11_CLK), + + /* MMC device clocks (MMC1 and MMC2 can have different input clocks) */ + OMAP3_GENERIC_CLOCK_DEV(MMC1_CLK), + OMAP3_GENERIC_CLOCK_DEV(MMC2_CLK), + OMAP3_GENERIC_CLOCK_DEV(MMC3_CLK), + + /* USB HS (high speed TLL, EHCI and OHCI) */ + OMAP3_GENERIC_CLOCK_DEV(USBTLL_CLK), + OMAP3_HSUSBHOST_CLOCK_DEV(USBHSHOST_CLK), /* GPIO */ - AM335X_GENERIC_CLOCK_DEV(GPIO0_CLK), - AM335X_GENERIC_CLOCK_DEV(GPIO1_CLK), - AM335X_GENERIC_CLOCK_DEV(GPIO2_CLK), - AM335X_GENERIC_CLOCK_DEV(GPIO3_CLK), - + OMAP3_GENERIC_CLOCK_DEV(GPIO1_CLK), + OMAP3_GENERIC_CLOCK_DEV(GPIO2_CLK), + OMAP3_GENERIC_CLOCK_DEV(GPIO3_CLK), + OMAP3_GENERIC_CLOCK_DEV(GPIO4_CLK), + OMAP3_GENERIC_CLOCK_DEV(GPIO5_CLK), + OMAP3_GENERIC_CLOCK_DEV(GPIO6_CLK), + /* I2C */ - AM335X_GENERIC_CLOCK_DEV(I2C0_CLK), - AM335X_GENERIC_CLOCK_DEV(I2C1_CLK), - AM335X_GENERIC_CLOCK_DEV(I2C2_CLK), - - /* EDMA */ - AM335X_GENERIC_CLOCK_DEV(EDMA_TPCC_CLK), - AM335X_GENERIC_CLOCK_DEV(EDMA_TPTC0_CLK), - AM335X_GENERIC_CLOCK_DEV(EDMA_TPTC1_CLK), - AM335X_GENERIC_CLOCK_DEV(EDMA_TPTC2_CLK), - - /* MMCHS */ - AM335X_MMCHS_CLOCK_DEV(MMC0_CLK), - AM335X_MMCHS_CLOCK_DEV(MMC1_CLK), - AM335X_MMCHS_CLOCK_DEV(MMC2_CLK), + OMAP3_GENERIC_CLOCK_DEV(I2C1_CLK), + OMAP3_GENERIC_CLOCK_DEV(I2C2_CLK), + OMAP3_GENERIC_CLOCK_DEV(I2C3_CLK), + + /* sDMA */ + OMAP3_ALWAYSON_CLOCK_DEV(SDMA_CLK), { INVALID_CLK_IDENT, NULL, NULL, NULL, NULL } }; -struct am335x_clk_details { - clk_ident_t id; - uint32_t clkctrl_reg; - uint32_t clksel_reg; + + + + + +/** + * g_omap3_clk_details - Stores details for all the different clocks supported + * + * Whenever an operation on a clock is being performed (activated, deactivated, + * etc) this array is looked up to find the correct register and bit(s) we + * should be modifying. + * + */ + +struct omap3_clk_details { + clk_ident_t id; + int32_t src_freq; + + /* The register offset from the CM module register region of the registers*/ + uint32_t fclken_offset; + uint32_t iclken_offset; + uint32_t idlest_offset; + + /* The bit offset for the clock */ + uint32_t bit_offset; }; -#define _CLK_DETAIL(i, c, s) \ - { .id = (i), \ - .clkctrl_reg = (c), \ - .clksel_reg = (s), \ +#define OMAP3_GENERIC_CLOCK_DETAILS(d, freq, base, fclk, iclk, idlest, bit) \ + { .id = (d), \ + .src_freq = (freq), \ + .fclken_offset = ((base) + (fclk)), \ + .iclken_offset = ((base) + (iclk)), \ + .idlest_offset = ((base) + (idlest)), \ + .bit_offset = (bit), \ } -static struct am335x_clk_details g_am335x_clk_details[] = { +static const struct omap3_clk_details g_omap3_clk_details[] = { - /* DMTimer modules */ - _CLK_DETAIL(DMTIMER2_CLK, CM_PER_TIMER2_CLKCTRL, CLKSEL_TIMER2_CLK), - _CLK_DETAIL(DMTIMER3_CLK, CM_PER_TIMER3_CLKCTRL, CLKSEL_TIMER3_CLK), - _CLK_DETAIL(DMTIMER4_CLK, CM_PER_TIMER4_CLKCTRL, CLKSEL_TIMER4_CLK), - _CLK_DETAIL(DMTIMER5_CLK, CM_PER_TIMER5_CLKCTRL, CLKSEL_TIMER5_CLK), - _CLK_DETAIL(DMTIMER6_CLK, CM_PER_TIMER6_CLKCTRL, CLKSEL_TIMER6_CLK), - _CLK_DETAIL(DMTIMER7_CLK, CM_PER_TIMER7_CLKCTRL, CLKSEL_TIMER7_CLK), + /* UART */ + OMAP3_GENERIC_CLOCK_DETAILS(UART1_CLK, FREQ_48MHZ, CORE_CM_OFFSET, + 0x00, 0x10, 0x20, 13), + OMAP3_GENERIC_CLOCK_DETAILS(UART2_CLK, FREQ_48MHZ, CORE_CM_OFFSET, + 0x00, 0x10, 0x20, 14), + OMAP3_GENERIC_CLOCK_DETAILS(UART3_CLK, FREQ_48MHZ, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 11), + + /* General purpose timers */ + OMAP3_GENERIC_CLOCK_DETAILS(GPTIMER1_CLK, -1, WKUP_CM_OFFSET, + 0x00, 0x10, 0x20, 3), + OMAP3_GENERIC_CLOCK_DETAILS(GPTIMER2_CLK, -1, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 3), + OMAP3_GENERIC_CLOCK_DETAILS(GPTIMER3_CLK, -1, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 4), + OMAP3_GENERIC_CLOCK_DETAILS(GPTIMER4_CLK, -1, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 5), + OMAP3_GENERIC_CLOCK_DETAILS(GPTIMER5_CLK, -1, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 6), + OMAP3_GENERIC_CLOCK_DETAILS(GPTIMER6_CLK, -1, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 7), + OMAP3_GENERIC_CLOCK_DETAILS(GPTIMER7_CLK, -1, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 8), + OMAP3_GENERIC_CLOCK_DETAILS(GPTIMER8_CLK, -1, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 9), + OMAP3_GENERIC_CLOCK_DETAILS(GPTIMER9_CLK, -1, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 10), + OMAP3_GENERIC_CLOCK_DETAILS(GPTIMER10_CLK, -1, CORE_CM_OFFSET, + 0x00, 0x10, 0x20, 11), + OMAP3_GENERIC_CLOCK_DETAILS(GPTIMER11_CLK, -1, CORE_CM_OFFSET, + 0x00, 0x10, 0x20, 12), + + /* HSMMC (MMC1 and MMC2 can have different input clocks) */ + OMAP3_GENERIC_CLOCK_DETAILS(MMC1_CLK, FREQ_96MHZ, CORE_CM_OFFSET, + 0x00, 0x10, 0x20, 24), + OMAP3_GENERIC_CLOCK_DETAILS(MMC2_CLK, FREQ_96MHZ, CORE_CM_OFFSET, + 0x00, 0x10, 0x20, 25), + OMAP3_GENERIC_CLOCK_DETAILS(MMC3_CLK, FREQ_96MHZ, CORE_CM_OFFSET, + 0x00, 0x10, 0x20, 30), + + /* USB HS (high speed TLL, EHCI and OHCI) */ + OMAP3_GENERIC_CLOCK_DETAILS(USBTLL_CLK, -1, CORE_CM_OFFSET, + 0x08, 0x18, 0x28, 2), + OMAP3_GENERIC_CLOCK_DETAILS(USBHSHOST_CLK, -1, USBHOST_CM_OFFSET, + 0x00, 0x10, 0x20, 1), /* GPIO modules */ - _CLK_DETAIL(GPIO0_CLK, CM_WKUP_GPIO0_CLKCTRL, 0), - _CLK_DETAIL(GPIO1_CLK, CM_PER_GPIO1_CLKCTRL, 0), - _CLK_DETAIL(GPIO2_CLK, CM_PER_GPIO2_CLKCTRL, 0), - _CLK_DETAIL(GPIO3_CLK, CM_PER_GPIO3_CLKCTRL, 0), - + OMAP3_GENERIC_CLOCK_DETAILS(GPIO1_CLK, -1, WKUP_CM_OFFSET, + 0x00, 0x10, 0x20, 3), + OMAP3_GENERIC_CLOCK_DETAILS(GPIO2_CLK, -1, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 13), + OMAP3_GENERIC_CLOCK_DETAILS(GPIO3_CLK, -1, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 14), + OMAP3_GENERIC_CLOCK_DETAILS(GPIO4_CLK, -1, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 15), + OMAP3_GENERIC_CLOCK_DETAILS(GPIO5_CLK, -1, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 16), + OMAP3_GENERIC_CLOCK_DETAILS(GPIO6_CLK, -1, PER_CM_OFFSET, + 0x00, 0x10, 0x20, 17), + /* I2C modules */ - _CLK_DETAIL(I2C0_CLK, CM_WKUP_I2C0_CLKCTRL, 0), - _CLK_DETAIL(I2C1_CLK, CM_PER_I2C1_CLKCTRL, 0), - _CLK_DETAIL(I2C2_CLK, CM_PER_I2C2_CLKCTRL, 0), - - /* EDMA modules */ - _CLK_DETAIL(EDMA_TPCC_CLK, CM_PER_TPCC_CLKCTRL, 0), - _CLK_DETAIL(EDMA_TPTC0_CLK, CM_PER_TPTC0_CLKCTRL, 0), - _CLK_DETAIL(EDMA_TPTC1_CLK, CM_PER_TPTC1_CLKCTRL, 0), - _CLK_DETAIL(EDMA_TPTC2_CLK, CM_PER_TPTC2_CLKCTRL, 0), - - /* MMCHS modules*/ - _CLK_DETAIL(MMC0_CLK, CM_PER_MMC0_CLKCTRL, 0), - _CLK_DETAIL(MMC1_CLK, CM_PER_MMC1_CLKCTRL, 0), - _CLK_DETAIL(MMC2_CLK, CM_PER_MMC1_CLKCTRL, 0), + OMAP3_GENERIC_CLOCK_DETAILS(I2C1_CLK, -1, CORE_CM_OFFSET, + 0x00, 0x10, 0x20, 15), + OMAP3_GENERIC_CLOCK_DETAILS(I2C2_CLK, -1, CORE_CM_OFFSET, + 0x00, 0x10, 0x20, 16), + OMAP3_GENERIC_CLOCK_DETAILS(I2C3_CLK, -1, CORE_CM_OFFSET, + 0x00, 0x10, 0x20, 17), - { INVALID_CLK_IDENT, 0}, + + { INVALID_CLK_IDENT, 0, 0, 0, 0 }, }; -/* Read/Write macros */ -#define prcm_read_4(reg) \ - bus_space_read_4(am335x_prcm_sc->bst, am335x_prcm_sc->bsh, reg) -#define prcm_write_4(reg, val) \ - bus_space_write_4(am335x_prcm_sc->bst, am335x_prcm_sc->bsh, reg, val) -void am335x_prcm_setup_dmtimer(int); + + + +/** + * MAX_MODULE_ENABLE_WAIT - the number of loops to wait for the module to come + * alive. + * + */ +#define MAX_MODULE_ENABLE_WAIT 1000 + + +/** + * ARRAY_SIZE - Macro to return the number of elements in a static const array. + * + */ +#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) + + + + +/** + * omap3_clk_wait_on_reg - loops for MAX_MODULE_ENABLE_WAIT times or until + * register bit(s) change. + * @mem_res: memory resource of the register to read + * @off: offset of the register within mem_res + * @mask: the mask to bitwise AND with the register + * @cmp: if this value matches the register value after the mask is applied + * the function returns with 0. + * + * + * RETURNS: + * Returns 0 on success or ETIMEDOUT on failure. + */ static int -am335x_prcm_probe(device_t dev) +omap3_clk_wait_on_reg(struct resource* mem_res, bus_size_t off, uint32_t mask, + uint32_t cmp) { - if (ofw_bus_is_compatible(dev, "am335x,prcm")) { - device_set_desc(dev, "AM335x Power and Clock Management"); - return(BUS_PROBE_DEFAULT); + unsigned int i; + for (i = 0; i < MAX_MODULE_ENABLE_WAIT; i++) { + if ((bus_read_4(mem_res, off) & mask) == cmp) + return (0); } - return (ENXIO); + return (ETIMEDOUT); } -static int -am335x_prcm_attach(device_t dev) -{ - struct am335x_prcm_softc *sc = device_get_softc(dev); - unsigned int sysclk, fclk; - if (am335x_prcm_sc) - return (ENXIO); - if (bus_alloc_resources(dev, am335x_prcm_spec, sc->res)) { - device_printf(dev, "could not allocate resources\n"); - return (ENXIO); + + +/** + * omap3_clk_details - returns a pointer to the generic clock details + * @id: The ID of the clock to get the details for + * + * This function iterates over the g_omap3_clk_details array and returns a + * pointer to the entry that matches the supplied ID, or NULL if no entry + * is found. + * + * RETURNS: + * Pointer to clock details or NULL on failure + */ +static const struct omap3_clk_details* +omap3_clk_details(clk_ident_t id) +{ + const struct omap3_clk_details *walker; + + for (walker = g_omap3_clk_details; walker->id != INVALID_CLK_IDENT; walker++) { + if (id == walker->id) + return (walker); } - sc->bst = rman_get_bustag(sc->res[0]); - sc->bsh = rman_get_bushandle(sc->res[0]); + return NULL; +} - am335x_prcm_sc = sc; - ti_cpu_reset = am335x_prcm_reset; - am335x_clk_get_sysclk_freq(NULL, &sysclk); - am335x_clk_get_arm_fclk_freq(NULL, &fclk); - device_printf(dev, "Clocks: System %u.%01u MHz, CPU %u MHz\n", - sysclk/1000000, (sysclk % 1000000)/100000, fclk/1000000); + +/** + * omap3_clk_alwayson_null_func - dummy function for always on clocks + * @clkdev: pointer to the clock device structure (ignored) + * @mem_res: array of memory resources mapped when PRCM driver attached (ignored) + * + * + * + * LOCKING: + * Inherits the locks from the omap_prcm driver, no internal locking. + * + * RETURNS: + * Returns 0 on success or a positive error code on failure. + */ +static int +omap3_clk_alwayson_null_func(const struct ti_clock_dev *clkdev, + struct resource* mem_res[]) +{ return (0); } -static device_method_t am335x_prcm_methods[] = { - DEVMETHOD(device_probe, am335x_prcm_probe), - DEVMETHOD(device_attach, am335x_prcm_attach), - { 0, 0 } -}; -static driver_t am335x_prcm_driver = { - "am335x_prcm", - am335x_prcm_methods, - sizeof(struct am335x_prcm_softc), -}; -static devclass_t am335x_prcm_devclass; -DRIVER_MODULE(am335x_prcm, simplebus, am335x_prcm_driver, - am335x_prcm_devclass, 0, 0); -MODULE_DEPEND(am335x_prcm, ti_scm, 1, 1, 1); -static struct am335x_clk_details* -am335x_clk_details(clk_ident_t id) +/** + * omap3_clk_get_sysclk_freq - gets the sysclk frequency + * @sc: pointer to the clk module/device context + * + * Read the clocking information from the power-control/boot-strap registers, + * and stored in two global variables. + * + * RETURNS: + * nothing, values are saved in global variables + */ +static int +omap3_clk_get_sysclk_freq(const struct ti_clock_dev *clkdev, + unsigned int *freq, struct resource* mem_res[]) { - struct am335x_clk_details *walker; + uint32_t clksel; + uint32_t clknsel; + unsigned int oscclk; + unsigned int sysclk; + + /* Read the input clock freq from the configuration register */ + clknsel = bus_read_4(mem_res[PRM_INSTANCE_MEM_REGION], CLOCK_CTRL_PRM_OFFSET + 0x40); + switch (clknsel & 0x7) { + case 0x0: + /* 12Mhz */ + oscclk = 12000000; + break; + case 0x1: + /* 13Mhz */ + oscclk = 13000000; + break; + case 0x2: + /* 19.2Mhz */ + oscclk = 19200000; + break; + case 0x3: + /* 26Mhz */ + oscclk = 26000000; + break; + case 0x4: + /* 38.4Mhz */ + oscclk = 38400000; + break; + case 0x5: + /* 16.8Mhz */ + oscclk = 16800000; + break; + default: + panic("%s: Invalid clock freq", __func__); + } - for (walker = g_am335x_clk_details; walker->id != INVALID_CLK_IDENT; walker++) { - if (id == walker->id) - return (walker); + /* Read the value of the clock divider used for the system clock */ + clksel = bus_read_4(mem_res[PRM_INSTANCE_MEM_REGION], GLOBAL_PRM_OFFSET + 0x70); + switch (clksel & 0xC0) { + case 0x40: + sysclk = oscclk; + break; + case 0x80: + sysclk = oscclk / 2; + break; + default: + panic("%s: Invalid system clock divider", __func__); } - return NULL; + /* Return the value */ + if (freq) + *freq = sysclk; + + return (0); } + + +/** + * omap3_clk_get_arm_fclk_freq - gets the MPU clock frequency + * @clkdev: ignored + * @freq: pointer which upon return will contain the freq in hz + * @mem_res: array of allocated memory resources + * + * Reads the frequency setting information registers and returns the value + * in the freq variable. + * + * RETURNS: + * returns 0 on success, a positive error code on failure. + */ static int -am335x_clk_generic_activate(struct ti_clock_dev *clkdev) +omap3_clk_get_arm_fclk_freq(const struct ti_clock_dev *clkdev, + unsigned int *freq, struct resource* mem_res[]) { - struct am335x_prcm_softc *sc = am335x_prcm_sc; - struct am335x_clk_details* clk_details; + unsigned int sysclk; + unsigned int coreclk; + unsigned int mpuclk; + uint32_t clksel; + uint32_t clkout; + + + /* Get the SYSCLK freq */ + omap3_clk_get_sysclk_freq(clkdev, &sysclk, mem_res); + + + /* First get the freq of the CORE_CLK (feed from DPLL3) */ + clksel = bus_read_4(mem_res[CM_INSTANCE_MEM_REGION], CLOCK_CTRL_CM_OFFSET + 0x40); + clkout = (sysclk * ((clksel >> 16) & 0x7FF)) / (((clksel >> 8) & 0x7F) + 1); + coreclk = clkout / (clksel >> 27); + + + /* Next get the freq for the MPU_CLK */ + clksel = bus_read_4(mem_res[CM_INSTANCE_MEM_REGION], MPU_CM_OFFSET + 0x40); + mpuclk = (coreclk * ((clksel >> 8) & 0x7FF)) / ((clksel & 0x7F) + 1); + + + /* Return the value */ + if (freq) + *freq = mpuclk; + + return (0); +} + + + + - if (sc == NULL) - return ENXIO; - clk_details = am335x_clk_details(clkdev->id); + + +/** + * omap3_clk_generic_activate - activates a modules iinterface and func clock + * @clkdev: pointer to the clock device structure. + * @mem_res: array of memory resources mapped when PRCM driver attached + * + * + * + * LOCKING: + * Inherits the locks from the omap_prcm driver, no internal locking. + * + * RETURNS: + * Returns 0 on success or a positive error code on failure. + */ +static int +omap3_clk_generic_activate(const struct ti_clock_dev *clkdev, + struct resource* mem_res[]) +{ + const struct omap3_clk_details* clk_details = omap3_clk_details(clkdev->id); + struct resource* clk_mem_res = mem_res[CM_INSTANCE_MEM_REGION]; + uint32_t fclken, iclken; if (clk_details == NULL) return (ENXIO); + if (clk_mem_res == NULL) + return (ENOMEM); + + + /* All the 'generic' clocks have a FCLKEN, ICLKEN and IDLEST register which + * is for the functional, interface and clock status regsters respectively. + */ + + /* Enable the interface clock */ + iclken = bus_read_4(clk_mem_res, clk_details->iclken_offset); + iclken |= (1UL << clk_details->bit_offset); + bus_write_4(clk_mem_res, clk_details->iclken_offset, iclken); + + /* Read back the value to ensure the write has taken place ... needed ? */ + iclken = bus_read_4(clk_mem_res, clk_details->iclken_offset); + + + /* Enable the functional clock */ + fclken = bus_read_4(clk_mem_res, clk_details->fclken_offset); + fclken |= (1UL << clk_details->bit_offset); + bus_write_4(clk_mem_res, clk_details->fclken_offset, fclken); + + /* Read back the value to ensure the write has taken place ... needed ? */ + fclken = bus_read_4(clk_mem_res, clk_details->fclken_offset); + + + /* Now poll on the IDLEST register to tell us if the module has come up. + * TODO: We need to take into account the parent clocks. + */ + + /* Try MAX_MODULE_ENABLE_WAIT number of times to check if enabled */ + if (omap3_clk_wait_on_reg(clk_mem_res, clk_details->idlest_offset, + (1UL << clk_details->bit_offset), 0) != 0) { + printf("Error: failed to enable module with clock %d\n", clkdev->id); + return (ETIMEDOUT); + } + + return (0); +} - /* set *_CLKCTRL register MODULEMODE[1:0] to enable(2) */ - prcm_write_4(clk_details->clkctrl_reg, 2); - while ((prcm_read_4(clk_details->clkctrl_reg) & 0x3) != 2) - DELAY(10); + +/** + * omap3_clk_generic_deactivate - deactivates a modules clock + * @clkdev: pointer to the clock device structure. + * @mem_res: array of memory resources mapped when PRCM driver attached + * + * + * + * LOCKING: + * Inherits the locks from the omap_prcm driver, no internal locking. + * + * RETURNS: + * Returns 0 on success or a positive error code on failure. + */ +static int +omap3_clk_generic_deactivate(const struct ti_clock_dev *clkdev, + struct resource* mem_res[]) +{ + const struct omap3_clk_details* clk_details = omap3_clk_details(clkdev->id); + struct resource* clk_mem_res = mem_res[CM_INSTANCE_MEM_REGION]; + uint32_t fclken, iclken; + + if (clk_details == NULL) + return (ENXIO); + if (clk_mem_res == NULL) + return (ENOMEM); + + + /* All the 'generic' clocks have a FCLKEN, ICLKEN and IDLEST register which + * is for the functional, interface and clock status regsters respectively. + */ + + /* Disable the interface clock */ + iclken = bus_read_4(clk_mem_res, clk_details->iclken_offset); + iclken &= ~(1UL << clk_details->bit_offset); + bus_write_4(clk_mem_res, clk_details->iclken_offset, iclken); + + /* Disable the functional clock */ + fclken = bus_read_4(clk_mem_res, clk_details->fclken_offset); + fclken &= ~(1UL << clk_details->bit_offset); + bus_write_4(clk_mem_res, clk_details->fclken_offset, fclken); + + return (0); } + +/** + * omap3_clk_generic_set_source - checks if a module is accessible + * @clkdev: pointer to the clock device structure. + * + * + * + * LOCKING: + * Inherits the locks from the omap_prcm driver, no internal locking. + * *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 20:54:03 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id A26021065673 for ; Wed, 13 Jun 2012 20:54:01 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 20:54:01 +0000 Date: Wed, 13 Jun 2012 20:54:01 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613205401.A26021065673@hub.freebsd.org> Cc: Subject: socsvn commit: r237629 - in soc2012/jhagewood: diff diff/diff diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 20:54:03 -0000 Author: jhagewood Date: Wed Jun 13 20:54:01 2012 New Revision: 237629 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237629 Log: Modified: soc2012/jhagewood/diff/diff/diffreg.c soc2012/jhagewood/diff/hagewood-diff.patch soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/diff/diff/diffreg.c ============================================================================== --- soc2012/jhagewood/diff/diff/diffreg.c Wed Jun 13 20:52:57 2012 (r237628) +++ soc2012/jhagewood/diff/diff/diffreg.c Wed Jun 13 20:54:01 2012 (r237629) @@ -766,7 +766,6 @@ ixnew[j] = ctnew += skipline(f2); j++; } - /* XXX Implement functionality for Eflag here */ if (bflag || wflag || iflag || Bflag || Eflag) { for (;;) { c = getc(f1); @@ -804,28 +803,41 @@ } } else if (Bflag) { - if( c == '\n' && d != '\n') { - + if(c == '\n' && d != '\n') { do { if (c == '\n') { ixold[i] = ctold; i++; } - } while ((c = getc(f1)) == '\n' && i <= len[0]); } - - if( d == '\n' && c != '\n') { + if (d == '\n' && c != '\n') { do { if (d == '\n') { ixnew[j] = ctnew; j++; } } while ((d = getc(f2)) == '\n' && j <= len[1]); - } - break; + /* TODO : ignore-tab-expansion */ + } else if (Eflag) { + if (c == '\t' && d == ' ') { + do { + if (c == '\t') { + ixold[i] = ctold; + i++; + } + } while ((c = getc(f1)) == '\t' && i <= len[0]); + } + if (d == '\t' && c == ' ') { + do { + if (d == '\t') { + ixnew[j] = ctnew; + j++; + } + } while ((d = getc(f2)) == '\t' && j <= len[1]); + } } if (chrtran[c] != chrtran[d]) { jackpot++; Modified: soc2012/jhagewood/diff/hagewood-diff.patch ============================================================================== --- soc2012/jhagewood/diff/hagewood-diff.patch Wed Jun 13 20:52:57 2012 (r237628) +++ soc2012/jhagewood/diff/hagewood-diff.patch Wed Jun 13 20:54:01 2012 (r237629) @@ -69,18 +69,66 @@ extern int format, context, status; diff -rupN jhagewood/diff/diff-orig/diffreg.c jhagewood/diff/diff/diffreg.c --- jhagewood/diff/diff-orig/diffreg.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diffreg.c 2012-06-13 05:11:57.000000000 -0400 -@@ -766,7 +766,8 @@ check(char *file1, FILE *f1, char *file2 ++++ jhagewood/diff/diff/diffreg.c 2012-06-13 20:53:55.000000000 -0400 +@@ -766,7 +766,7 @@ check(char *file1, FILE *f1, char *file2 ixnew[j] = ctnew += skipline(f2); j++; } - if (bflag || wflag || iflag || Bflag) { -+ /* XXX Implement functionality for Eflag here */ + if (bflag || wflag || iflag || Bflag || Eflag) { for (;;) { c = getc(f1); d = getc(f2); -@@ -1551,16 +1552,33 @@ dump_unified_vec(FILE *f1, FILE *f2) +@@ -803,28 +803,41 @@ check(char *file1, FILE *f1, char *file2 + } + + } else if (Bflag) { +- if( c == '\n' && d != '\n') { +- ++ if(c == '\n' && d != '\n') { + do { + if (c == '\n') { + ixold[i] = ctold; + i++; + } +- + } while ((c = getc(f1)) == '\n' && i <= len[0]); + } +- +- if( d == '\n' && c != '\n') { ++ if (d == '\n' && c != '\n') { + do { + if (d == '\n') { + ixnew[j] = ctnew; + j++; + } + } while ((d = getc(f2)) == '\n' && j <= len[1]); +- + } +- + break; ++ /* TODO : ignore-tab-expansion */ ++ } else if (Eflag) { ++ if (c == '\t' && d == ' ') { ++ do { ++ if (c == '\t') { ++ ixold[i] = ctold; ++ i++; ++ } ++ } while ((c = getc(f1)) == '\t' && i <= len[0]); ++ } ++ if (d == '\t' && c == ' ') { ++ do { ++ if (d == '\t') { ++ ixnew[j] = ctnew; ++ j++; ++ } ++ } while ((d = getc(f2)) == '\t' && j <= len[1]); ++ } + } + if (chrtran[c] != chrtran[d]) { + jackpot++; +@@ -1551,16 +1564,33 @@ dump_unified_vec(FILE *f1, FILE *f2) static void print_header(const char *file1, const char *file2) { Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 20:52:57 2012 (r237628) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Wed Jun 13 20:54:01 2012 (r237629) @@ -11,7 +11,7 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 19:37:26.000000000 -0400 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 19:37:44.000000000 -0400 @@ -64,22 +64,31 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ @@ -25,7 +25,7 @@ #endif +#endif /* not lint */ +#include -+__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237579 2012-06-13 03:11:56Z jhagewood $"); ++__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237623 2012-06-13 19:37:41Z jhagewood $"); +#include +#include From owner-svn-soc-all@FreeBSD.ORG Wed Jun 13 23:37:38 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 1063B1065670 for ; Wed, 13 Jun 2012 23:37:36 +0000 (UTC) (envelope-from gmiller@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Wed, 13 Jun 2012 23:37:36 +0000 Date: Wed, 13 Jun 2012 23:37:36 +0000 From: gmiller@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120613233736.1063B1065670@hub.freebsd.org> Cc: Subject: socsvn commit: r237648 - in soc2012/gmiller/locking-head: include lib/libthr/thread X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 23:37:38 -0000 Author: gmiller Date: Wed Jun 13 23:37:35 2012 New Revision: 237648 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237648 Log: Bug fixes for mutex profiling code. Works now, except for wait times and contest counts. Modified: soc2012/gmiller/locking-head/include/pthread.h soc2012/gmiller/locking-head/include/pthread_np.h soc2012/gmiller/locking-head/lib/libthr/thread/thr_cond.c soc2012/gmiller/locking-head/lib/libthr/thread/thr_mutex.c soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c soc2012/gmiller/locking-head/lib/libthr/thread/thr_pspinlock.c soc2012/gmiller/locking-head/lib/libthr/thread/thr_rwlock.c Modified: soc2012/gmiller/locking-head/include/pthread.h ============================================================================== --- soc2012/gmiller/locking-head/include/pthread.h Wed Jun 13 22:53:56 2012 (r237647) +++ soc2012/gmiller/locking-head/include/pthread.h Wed Jun 13 23:37:35 2012 (r237648) @@ -313,40 +313,42 @@ int); int _pthread_mutex_timedlock_profiled(pthread_mutex_t *, const struct timespec *, - const char *, - int); -int pthread_rwlock_rdlock_profiled(pthread_rwlock_t *, - const char *, - int); -int pthread_rwlock_timedrdlock_profiled(pthread_rwlock_t *, - const struct timespec *, - const char *, - int); -int pthread_rwlock_timedwrlock_profiled(pthread_rwlock_t *, - const struct timespec *, - const char *, - int); -int pthread_rwlock_tryrdlock_profiled(pthread_rwlock_t *, - const char *, - int); -int pthread_rwlock_trywrlock_profiled(pthread_rwlock_t *, - const char *, - int); -int pthread_rwlock_wrlock_profiled(pthread_rwlock_t *, + const char *, int); +int _pthread_mutex_unlock_profiled(pthread_mutex_t *, + const char *, int); +int _pthread_rwlock_rdlock_profiled(pthread_rwlock_t *, + const char *, + int); +int _pthread_rwlock_timedrdlock_profiled(pthread_rwlock_t *, + const struct timespec *, + const char *, + int); +int _pthread_rwlock_timedwrlock_profiled(pthread_rwlock_t *, + const struct timespec *, + const char *, + int); +int _pthread_rwlock_tryrdlock_profiled(pthread_rwlock_t *, + const char *, + int); +int _pthread_rwlock_trywrlock_profiled(pthread_rwlock_t *, + const char *, + int); +int _pthread_rwlock_wrlock_profiled(pthread_rwlock_t *, + const char *, + int); +int _pthread_spin_lock_profiled(pthread_spinlock_t *, + const char *, + int); +int _pthread_spin_trylock_profiled(pthread_spinlock_t *, const char *, int); -int pthread_spin_lock_profiled(pthread_spinlock_t *, - const char *, - int); -int pthread_spin_trylock_profiled(pthread_spinlock_t *, - const char *, - int); #ifdef pthread_mutex_lock #undef pthread_mutex_lock #undef pthread_mutex_trylock #undef pthread_mutex_timedlock +#undef pthread_mutex_unlock #undef pthread_cond_wait #undef pthread_cond_timedwait #undef pthread_rwlock_rdlock @@ -366,6 +368,8 @@ _pthread_mutex_trylock_profiled(m, __FILE__, __LINE__) #define pthread_mutex_timedlock(m, t) \ _pthread_mutex_timedlock_profiled(m, t, __FILE__, __LINE__) +#define pthread_mutex_unlock(m) \ + _pthread_mutex_unlock_profiled(m, __FILE__, __LINE__) #define pthread_cond_wait(c, m) \ _pthread_cond_wait_profiled(c, m, __FILE__, __LINE__) #define pthread_cond_timedwait(c, m, t) \ Modified: soc2012/gmiller/locking-head/include/pthread_np.h ============================================================================== --- soc2012/gmiller/locking-head/include/pthread_np.h Wed Jun 13 22:53:56 2012 (r237647) +++ soc2012/gmiller/locking-head/include/pthread_np.h Wed Jun 13 23:37:35 2012 (r237648) @@ -88,7 +88,7 @@ }; void pthread_getstatistics_begin_np(struct pthread_statistics_np *); -void pthread_getstatistics_next_np(struct pthread_statistics_np *); +int pthread_getstatistics_next_np(struct pthread_statistics_np *); void pthread_getstatistics_end_np(struct pthread_statistics_np *); #endif Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_cond.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_cond.c Wed Jun 13 22:53:56 2012 (r237647) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_cond.c Wed Jun 13 23:37:35 2012 (r237648) @@ -246,7 +246,7 @@ */ cvp->__has_user_waiters = 1; curthread->will_sleep = 1; - (void)_mutex_cv_unlock(mp, &recurse); + (void)_mutex_cv_unlock(mp, &recurse _PROFILE_PASS); curthread->mutex_obj = mp; _sleepq_add(cvp, curthread); for(;;) { @@ -318,7 +318,7 @@ _pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) #ifdef LOCK_PROFILING { - return (_pthread_cond_wait_profiled(cond, mutex, __FILE__, __LINE__)); + return (_pthread_cond_wait_profiled(cond, mutex, NULL, 0)); } int @@ -336,7 +336,7 @@ __pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) #ifdef LOCK_PROFILING { - return (__pthread_cond_wait_profiled(cond, mutex, __FILE__, __LINE__)); + return (__pthread_cond_wait_profiled(cond, mutex, NULL, 0)); } int @@ -355,8 +355,7 @@ const struct timespec *abstime) #ifdef LOCK_PROFILING { - return (_pthread_cond_timedwait_profiled(cond, mutex, abstime, - __FILE__, __LINE__)); + return (_pthread_cond_timedwait_profiled(cond, mutex, abstime, NULL, 0)); } int @@ -379,8 +378,7 @@ const struct timespec *abstime) #ifdef LOCK_PROFILING { - return (__pthread_cond_timedwait_profiled(cond, mutex, abstime, - __FILE__, __LINE__)); + return (__pthread_cond_timedwait_profiled(cond, mutex, abstime, NULL, 0)); } int Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_mutex.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_mutex.c Wed Jun 13 22:53:56 2012 (r237647) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_mutex.c Wed Jun 13 23:37:35 2012 (r237648) @@ -80,6 +80,7 @@ int __pthread_mutex_lock(pthread_mutex_t *mutex); int __pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *abstime); +int __pthread_mutex_unlock(pthread_mutex_t *); int _pthread_mutex_init_calloc_cb(pthread_mutex_t *mutex, void *(calloc_cb)(size_t, size_t)); int _pthread_mutex_getspinloops_np(pthread_mutex_t *mutex, int *count); @@ -92,7 +93,8 @@ static int mutex_self_trylock(pthread_mutex_t _PROFILE_PARMS); static int mutex_self_lock(pthread_mutex_t, const struct timespec *abstime _PROFILE_PARMS); -static int mutex_unlock_common(struct pthread_mutex *, int); +static int mutex_unlock_common(struct pthread_mutex *, + int _PROFILE_PARMS); static int mutex_lock_sleep(struct pthread *, pthread_mutex_t, const struct timespec * _PROFILE_PARMS); @@ -133,6 +135,9 @@ const struct timespec *abstime, const char *file, int line); +int __pthread_mutex_unlock_profiled(pthread_mutex_t *mutex, + const char *file, + int line); __strong_reference(__pthread_mutex_lock_profiled, _pthread_mutex_lock_profiled); @@ -140,6 +145,8 @@ _pthread_mutex_trylock_profiled); __strong_reference(__pthread_mutex_timedlock_profiled, _pthread_mutex_timedlock_profiled); +__strong_reference(__pthread_mutex_unlock_profiled, + _pthread_mutex_unlock_profiled); #endif @@ -353,7 +360,6 @@ MUTEX_OBTAIN_SUCCESS(m, &waittime); } else if (m->m_owner == curthread) { ret = mutex_self_trylock(m _PROFILE_PASS); - MUTEX_OBTAIN_FAILED(m, &waittime); } else { MUTEX_OBTAIN_FAILED(m, &waittime); } @@ -368,7 +374,7 @@ __pthread_mutex_trylock(pthread_mutex_t *mutex) #ifdef LOCK_PROFILING { - return (__pthread_mutex_trylock_profiled(mutex, __FILE__, __LINE__)); + return (__pthread_mutex_trylock_profiled(mutex, NULL, 0)); } int @@ -490,7 +496,7 @@ __pthread_mutex_lock(pthread_mutex_t *mutex) #ifdef LOCK_PROFILING { - return (__pthread_mutex_lock_profiled(mutex, __FILE__, __LINE__)); + return (__pthread_mutex_lock_profiled(mutex, NULL, 0)); } int @@ -513,8 +519,7 @@ const struct timespec *abstime) #ifdef LOCK_PROFILING { - return (__pthread_mutex_timedlock_profiled(mutex, abstime, - __FILE__, __LINE__)); + return (__pthread_mutex_timedlock_profiled(mutex, abstime, NULL, 0)); } int @@ -535,11 +540,21 @@ int _pthread_mutex_unlock(pthread_mutex_t *mutex) +#ifdef LOCK_PROFILING +{ + return (__pthread_mutex_unlock_profiled(mutex, NULL, 0)); +} + +int +__pthread_mutex_unlock_profiled(pthread_mutex_t *mutex, + const char *file, + int line) +#endif { struct pthread_mutex *mp; mp = *mutex; - return (mutex_unlock_common(mp, 0)); + return (mutex_unlock_common(mp, 0 _PROFILE_PASS)); } int @@ -554,7 +569,7 @@ } int -_mutex_cv_unlock(struct pthread_mutex *m, int *count) +_mutex_cv_unlock(struct pthread_mutex *m, int *count _PROFILE_PARMS) { /* @@ -562,7 +577,7 @@ */ *count = m->m_count; m->m_count = 0; - (void)mutex_unlock_common(m, 1); + (void)mutex_unlock_common(m, 1 _PROFILE_PASS); return (0); } @@ -731,7 +746,7 @@ } static int -mutex_unlock_common(struct pthread_mutex *m, int cv) +mutex_unlock_common(struct pthread_mutex *m, int cv _PROFILE_PARMS) { struct pthread *curthread = _get_curthread(); uint32_t id; Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h Wed Jun 13 22:53:56 2012 (r237647) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h Wed Jun 13 23:37:35 2012 (r237648) @@ -742,14 +742,15 @@ int _thr_setthreaded(int) __hidden; int _mutex_cv_lock(struct pthread_mutex *, int count _PROFILE_PARMS) __hidden; -int _mutex_cv_unlock(struct pthread_mutex *, int *count) __hidden; +int _mutex_cv_unlock(struct pthread_mutex *, int *count _PROFILE_PARMS) + __hidden; int _mutex_cv_attach(struct pthread_mutex *, int count) __hidden; int _mutex_cv_detach(struct pthread_mutex *, int *count) __hidden; int _mutex_owned(struct pthread *, const struct pthread_mutex *) __hidden; int _mutex_reinit(pthread_mutex_t *) __hidden; void _mutex_fork(struct pthread *curthread) __hidden; -void _mutex_obtain_failed(struct pthread_mutex *, struct timespec *) - __hidden; +void _mutex_obtain_failed(struct pthread_mutex *, struct timespec *, + const char *) __hidden; void _mutex_obtain_success(struct pthread_mutex *, struct timespec *, const char *, int) __hidden; void _lock_profile_init(void) __hidden; @@ -766,7 +767,8 @@ __hidden; void _rwlock_release_write(struct pthread_rwlock *, struct timespec *) __hidden; -void _mutex_release(struct pthread_mutex *, struct timespec *) __hidden; +void _mutex_release(struct pthread_mutex *, struct timespec *, + const char *file) __hidden; void _spin_obtain_success(struct pthread_spinlock *, struct timespec *wait_time, const char *file, int line) __hidden; void _spin_obtain_failed(struct pthread_spinlock *, @@ -839,8 +841,8 @@ #define MUTEX_OBTAIN_SUCCESS(m, ts) \ _mutex_obtain_success(m, ts, file, line) #define MUTEX_OBTAIN_FAILED(m, ts) \ - _mutex_obtain_failed(m, ts) -#define MUTEX_RELEASE(m, ts) _mutex_release(m, ts) + _mutex_obtain_failed(m, ts, file) +#define MUTEX_RELEASE(m, ts) _mutex_release(m, ts, file) #define RWLOCK_OBTAIN_READ_SUCCESS(l, ts) \ _rwlock_obtain_read_success(l, ts, file, line) #define RWLOCK_OBTAIN_READ_FAILED(l, ts) \ Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Wed Jun 13 22:53:56 2012 (r237647) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Wed Jun 13 23:37:35 2012 (r237648) @@ -67,13 +67,13 @@ struct acq_point_head mutex_hash[LOCK_PROF_HASH_SIZE]; struct _pthread_statistics_private { - int hash; + u_int hash; struct acquisition_point *last_record; }; void _lock_profile_init() -{ +{ int i; for (i = 0; i < LOCK_PROF_HASH_SIZE; i++) { @@ -92,8 +92,7 @@ } } - acq = malloc(sizeof(struct acquisition)); - bzero(acq, sizeof(*acq)); + acq = calloc(1, sizeof(*acq)); acq->lock = m; acq->file = file; acq->line = line; @@ -117,8 +116,7 @@ } } - acq_point = malloc(sizeof(struct acquisition_point)); - bzero(acq_point, sizeof(*acq_point)); + acq_point = calloc(1, sizeof(*acq_point)); acq_point->file = file; acq_point->line = line; @@ -134,6 +132,10 @@ struct pthread *curthread = _get_curthread(); struct acquisition *acq; + if (file == NULL) { + return; + } + THR_CRITICAL_ENTER(curthread); acq = mutex_lookup_acq(m, file, line); @@ -146,7 +148,7 @@ wait_time->tv_nsec != 0) { if (TIMESPEC_GT(&acq->acq_time, wait_time)) { TIMESPEC_SUB(&acq->wait_time, - &acq->acq_time, &acq->acq_time); + &acq->acq_time, wait_time); } } else { bzero(&acq->wait_time, sizeof(acq->wait_time)); @@ -158,15 +160,21 @@ } void -_mutex_obtain_failed(struct pthread_mutex *m, struct timespec *wait_time) +_mutex_obtain_failed(struct pthread_mutex *m, struct timespec *wait_time, + const char *file) { + if (file == NULL) { + return; + } + if (wait_time->tv_sec == 0 && wait_time->tv_nsec == 0) { clock_gettime(CLOCK_REALTIME, wait_time); } } void -_mutex_release(struct pthread_mutex *m, struct timespec *wait_time) +_mutex_release(struct pthread_mutex *m, struct timespec *wait_time, + const char *file) { struct pthread *curthread = _get_curthread(); struct acquisition *acq; @@ -174,6 +182,10 @@ struct timespec current_time; struct timespec hold_time; + if (file == NULL) { + return; + } + THR_CRITICAL_ENTER(curthread); LIST_FOREACH(acq, &acq_head, acq_next) { @@ -188,10 +200,13 @@ acq_point = mutex_lookup_acq_point(m, acq->file, acq->line); clock_gettime(CLOCK_REALTIME, ¤t_time); - if (acq_point != NULL && - TIMESPEC_GT(&acq->acq_time, ¤t_time)) { - TIMESPEC_SUB(&hold_time, ¤t_time, - &acq->acq_time); + if (acq_point != NULL) { + bzero(&hold_time, sizeof(hold_time)); + if (TIMESPEC_GT(¤t_time, + &acq->acq_time)) { + TIMESPEC_SUB(&hold_time, ¤t_time, + &acq->acq_time); + } if (TIMESPEC_GT(&hold_time, &acq_point->hold_max)) { memcpy(&acq_point->hold_max, @@ -237,7 +252,7 @@ void _rwlock_obtain_read_failed(struct pthread_rwlock *l, - struct timespec *wait_time) + struct timespec *wait_time) { } @@ -292,9 +307,9 @@ if (stats->_pvt->hash >= LOCK_PROF_HASH_SIZE) { break; } else { - stats->_pvt->hash++; stats->_pvt->last_record = SLIST_FIRST(&mutex_hash[stats->_pvt->hash]); + stats->_pvt->hash++; } } else { stats->_pvt->last_record = SLIST_NEXT(stats->_pvt-> @@ -329,14 +344,12 @@ stats->_pvt = malloc(sizeof(struct _pthread_statistics_private)); stats->_pvt->hash = 0; stats->_pvt->last_record = NULL; - - find_next_record(stats); } -void +int pthread_getstatistics_next_np(struct pthread_statistics_np *stats) { - find_next_record(stats); + return (find_next_record(stats)); } void Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_pspinlock.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_pspinlock.c Wed Jun 13 22:53:56 2012 (r237647) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_pspinlock.c Wed Jun 13 23:37:35 2012 (r237648) @@ -90,7 +90,7 @@ _pthread_spin_trylock(pthread_spinlock_t *lock) #ifdef LOCK_PROFILING { - return (_pthread_spin_trylock_profiled(lock, __FILE__, __LINE__)); + return (_pthread_spin_trylock_profiled(lock, NULL, 0)); } int @@ -124,7 +124,7 @@ _pthread_spin_lock(pthread_spinlock_t *lock) #ifdef LOCK_PROFILING { - return (_pthread_spin_lock_profiled(lock, __FILE__, __LINE__)); + return (_pthread_spin_lock_profiled(lock, NULL, 0)); } int Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_rwlock.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_rwlock.c Wed Jun 13 22:53:56 2012 (r237647) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_rwlock.c Wed Jun 13 23:37:35 2012 (r237648) @@ -218,7 +218,7 @@ _pthread_rwlock_rdlock(pthread_rwlock_t *rwlock) #ifdef LOCK_PROFILING { - return (_pthread_rwlock_rdlock_profiled(rwlock, __FILE__, __LINE__)); + return (_pthread_rwlock_rdlock_profiled(rwlock, NULL, 0)); } int @@ -234,8 +234,7 @@ const struct timespec *abstime) #ifdef LOCK_PROFILING { - return (_pthread_rwlock_timedrdlock_profiled(rwlock, abstime, __FILE__, - __LINE__)); + return (_pthread_rwlock_timedrdlock_profiled(rwlock, abstime, NULL, 0)); } int @@ -251,8 +250,7 @@ _pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock) #ifdef LOCK_PROFILING { - return (_pthread_rwlock_tryrdlock_profiled(rwlock, __FILE__, - __LINE__)); + return (_pthread_rwlock_tryrdlock_profiled(rwlock, NULL, 0)); } int @@ -304,7 +302,7 @@ _pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock) #ifdef LOCK_PROFILING { - return (_pthread_rwlock_trywrlock_profiled(rwlock, __FILE__, __LINE__)); + return (_pthread_rwlock_trywrlock_profiled(rwlock, NULL, 0)); } int @@ -399,7 +397,7 @@ _pthread_rwlock_wrlock(pthread_rwlock_t *rwlock) #ifdef LOCK_PROFILING { - return (_pthread_rwlock_wrlock_profiled(rwlock, __FILE__, __LINE__)); + return (_pthread_rwlock_wrlock_profiled(rwlock, NULL, 0)); } int @@ -415,8 +413,8 @@ const struct timespec *abstime) #ifdef LOCK_PROFILING { - return (_pthread_rwlock_timedwrlock_profiled(rwlock, abstime, __FILE__, - __LINE__)); + return (_pthread_rwlock_timedwrlock_profiled(rwlock, abstime, NULL, + 0)); } int From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 00:03:40 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 170521065675 for ; Thu, 14 Jun 2012 00:03:37 +0000 (UTC) (envelope-from exxo@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 00:03:37 +0000 Date: Thu, 14 Jun 2012 00:03:37 +0000 From: exxo@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614000337.170521065675@hub.freebsd.org> Cc: Subject: socsvn commit: r237649 - in soc2012/exxo: freebsd-head head openssl-1.0.1c openssl-1.0.1c/MacOS openssl-1.0.1c/MacOS/GetHTTPS.src openssl-1.0.1c/Netware openssl-1.0.1c/VMS openssl-1.0.1c/apps opens... X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 00:03:40 -0000 Author: exxo Date: Thu Jun 14 00:03:31 2012 New Revision: 237649 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237649 Log: Adding regression suite + few tests + documentation + some modifications on patches Added: soc2012/exxo/freebsd-head/ - copied from r237420, soc2012/exxo/head/ soc2012/exxo/openssl-1.0.1c/ soc2012/exxo/openssl-1.0.1c/ACKNOWLEDGMENTS soc2012/exxo/openssl-1.0.1c/CHANGES soc2012/exxo/openssl-1.0.1c/CHANGES.SSLeay soc2012/exxo/openssl-1.0.1c/Configure (contents, props changed) soc2012/exxo/openssl-1.0.1c/FAQ soc2012/exxo/openssl-1.0.1c/INSTALL soc2012/exxo/openssl-1.0.1c/INSTALL.DJGPP soc2012/exxo/openssl-1.0.1c/INSTALL.MacOS soc2012/exxo/openssl-1.0.1c/INSTALL.NW soc2012/exxo/openssl-1.0.1c/INSTALL.OS2 soc2012/exxo/openssl-1.0.1c/INSTALL.VMS soc2012/exxo/openssl-1.0.1c/INSTALL.W32 soc2012/exxo/openssl-1.0.1c/INSTALL.W64 soc2012/exxo/openssl-1.0.1c/INSTALL.WCE soc2012/exxo/openssl-1.0.1c/LICENSE soc2012/exxo/openssl-1.0.1c/MacOS/ soc2012/exxo/openssl-1.0.1c/MacOS/GUSI_Init.cpp soc2012/exxo/openssl-1.0.1c/MacOS/GetHTTPS.src/ soc2012/exxo/openssl-1.0.1c/MacOS/GetHTTPS.src/CPStringUtils.cpp soc2012/exxo/openssl-1.0.1c/MacOS/GetHTTPS.src/CPStringUtils.hpp soc2012/exxo/openssl-1.0.1c/MacOS/GetHTTPS.src/ErrorHandling.cpp soc2012/exxo/openssl-1.0.1c/MacOS/GetHTTPS.src/ErrorHandling.hpp soc2012/exxo/openssl-1.0.1c/MacOS/GetHTTPS.src/GetHTTPS.cpp soc2012/exxo/openssl-1.0.1c/MacOS/GetHTTPS.src/MacSocket.cpp soc2012/exxo/openssl-1.0.1c/MacOS/GetHTTPS.src/MacSocket.h soc2012/exxo/openssl-1.0.1c/MacOS/OpenSSL.mcp.hqx (contents, props changed) soc2012/exxo/openssl-1.0.1c/MacOS/Randomizer.cpp soc2012/exxo/openssl-1.0.1c/MacOS/Randomizer.h soc2012/exxo/openssl-1.0.1c/MacOS/TODO soc2012/exxo/openssl-1.0.1c/MacOS/_MWERKS_GUSI_prefix.h soc2012/exxo/openssl-1.0.1c/MacOS/_MWERKS_prefix.h soc2012/exxo/openssl-1.0.1c/MacOS/buildinf.h soc2012/exxo/openssl-1.0.1c/MacOS/mklinks.as.hqx (contents, props changed) soc2012/exxo/openssl-1.0.1c/MacOS/opensslconf.h soc2012/exxo/openssl-1.0.1c/Makefile soc2012/exxo/openssl-1.0.1c/Makefile.bak soc2012/exxo/openssl-1.0.1c/Makefile.org soc2012/exxo/openssl-1.0.1c/Makefile.shared soc2012/exxo/openssl-1.0.1c/NEWS soc2012/exxo/openssl-1.0.1c/Netware/ soc2012/exxo/openssl-1.0.1c/Netware/build.bat soc2012/exxo/openssl-1.0.1c/Netware/cpy_tests.bat soc2012/exxo/openssl-1.0.1c/Netware/do_tests.pl soc2012/exxo/openssl-1.0.1c/Netware/globals.txt soc2012/exxo/openssl-1.0.1c/Netware/readme.txt soc2012/exxo/openssl-1.0.1c/Netware/set_env.bat soc2012/exxo/openssl-1.0.1c/PROBLEMS soc2012/exxo/openssl-1.0.1c/README soc2012/exxo/openssl-1.0.1c/README.ASN1 soc2012/exxo/openssl-1.0.1c/README.ENGINE soc2012/exxo/openssl-1.0.1c/VMS/ soc2012/exxo/openssl-1.0.1c/VMS/TODO soc2012/exxo/openssl-1.0.1c/VMS/VMSify-conf.pl soc2012/exxo/openssl-1.0.1c/VMS/WISHLIST.TXT soc2012/exxo/openssl-1.0.1c/VMS/install-vms.com (contents, props changed) soc2012/exxo/openssl-1.0.1c/VMS/mkshared.com soc2012/exxo/openssl-1.0.1c/VMS/multinet_shr.opt soc2012/exxo/openssl-1.0.1c/VMS/openssl_startup.com (contents, props changed) soc2012/exxo/openssl-1.0.1c/VMS/openssl_undo.com (contents, props changed) soc2012/exxo/openssl-1.0.1c/VMS/openssl_utils.com soc2012/exxo/openssl-1.0.1c/VMS/socketshr_shr.opt soc2012/exxo/openssl-1.0.1c/VMS/tcpip_shr_decc.opt soc2012/exxo/openssl-1.0.1c/VMS/test-includes.com soc2012/exxo/openssl-1.0.1c/VMS/ucx_shr_decc.opt soc2012/exxo/openssl-1.0.1c/VMS/ucx_shr_decc_log.opt soc2012/exxo/openssl-1.0.1c/VMS/ucx_shr_vaxc.opt soc2012/exxo/openssl-1.0.1c/apps/ soc2012/exxo/openssl-1.0.1c/apps/CA.com soc2012/exxo/openssl-1.0.1c/apps/CA.pl soc2012/exxo/openssl-1.0.1c/apps/CA.pl.in soc2012/exxo/openssl-1.0.1c/apps/CA.sh soc2012/exxo/openssl-1.0.1c/apps/Makefile soc2012/exxo/openssl-1.0.1c/apps/app_rand.c soc2012/exxo/openssl-1.0.1c/apps/apps.c soc2012/exxo/openssl-1.0.1c/apps/apps.h soc2012/exxo/openssl-1.0.1c/apps/asn1pars.c soc2012/exxo/openssl-1.0.1c/apps/ca-cert.srl soc2012/exxo/openssl-1.0.1c/apps/ca-key.pem soc2012/exxo/openssl-1.0.1c/apps/ca-req.pem soc2012/exxo/openssl-1.0.1c/apps/ca.c soc2012/exxo/openssl-1.0.1c/apps/cert.pem soc2012/exxo/openssl-1.0.1c/apps/ciphers.c soc2012/exxo/openssl-1.0.1c/apps/client.pem soc2012/exxo/openssl-1.0.1c/apps/cms.c soc2012/exxo/openssl-1.0.1c/apps/crl.c soc2012/exxo/openssl-1.0.1c/apps/crl2p7.c soc2012/exxo/openssl-1.0.1c/apps/demoCA/ soc2012/exxo/openssl-1.0.1c/apps/demoCA/cacert.pem soc2012/exxo/openssl-1.0.1c/apps/demoCA/index.txt soc2012/exxo/openssl-1.0.1c/apps/demoCA/private/ soc2012/exxo/openssl-1.0.1c/apps/demoCA/private/cakey.pem soc2012/exxo/openssl-1.0.1c/apps/demoCA/serial soc2012/exxo/openssl-1.0.1c/apps/demoSRP/ soc2012/exxo/openssl-1.0.1c/apps/demoSRP/srp_verifier.txt soc2012/exxo/openssl-1.0.1c/apps/demoSRP/srp_verifier.txt.attr soc2012/exxo/openssl-1.0.1c/apps/dgst.c soc2012/exxo/openssl-1.0.1c/apps/dh.c soc2012/exxo/openssl-1.0.1c/apps/dh1024.pem soc2012/exxo/openssl-1.0.1c/apps/dh2048.pem soc2012/exxo/openssl-1.0.1c/apps/dh4096.pem soc2012/exxo/openssl-1.0.1c/apps/dh512.pem soc2012/exxo/openssl-1.0.1c/apps/dhparam.c soc2012/exxo/openssl-1.0.1c/apps/dsa-ca.pem soc2012/exxo/openssl-1.0.1c/apps/dsa-pca.pem soc2012/exxo/openssl-1.0.1c/apps/dsa.c soc2012/exxo/openssl-1.0.1c/apps/dsa1024.pem soc2012/exxo/openssl-1.0.1c/apps/dsa512.pem soc2012/exxo/openssl-1.0.1c/apps/dsap.pem soc2012/exxo/openssl-1.0.1c/apps/dsaparam.c soc2012/exxo/openssl-1.0.1c/apps/ec.c soc2012/exxo/openssl-1.0.1c/apps/ecparam.c soc2012/exxo/openssl-1.0.1c/apps/enc.c soc2012/exxo/openssl-1.0.1c/apps/engine.c soc2012/exxo/openssl-1.0.1c/apps/errstr.c soc2012/exxo/openssl-1.0.1c/apps/gendh.c soc2012/exxo/openssl-1.0.1c/apps/gendsa.c soc2012/exxo/openssl-1.0.1c/apps/genpkey.c soc2012/exxo/openssl-1.0.1c/apps/genrsa.c soc2012/exxo/openssl-1.0.1c/apps/install-apps.com (contents, props changed) soc2012/exxo/openssl-1.0.1c/apps/makeapps.com soc2012/exxo/openssl-1.0.1c/apps/md4.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/apps/nseq.c soc2012/exxo/openssl-1.0.1c/apps/ocsp.c soc2012/exxo/openssl-1.0.1c/apps/oid.cnf soc2012/exxo/openssl-1.0.1c/apps/openssl-vms.cnf soc2012/exxo/openssl-1.0.1c/apps/openssl.c soc2012/exxo/openssl-1.0.1c/apps/openssl.cnf soc2012/exxo/openssl-1.0.1c/apps/passwd.c soc2012/exxo/openssl-1.0.1c/apps/pca-cert.srl soc2012/exxo/openssl-1.0.1c/apps/pca-key.pem soc2012/exxo/openssl-1.0.1c/apps/pca-req.pem soc2012/exxo/openssl-1.0.1c/apps/pkcs12.c soc2012/exxo/openssl-1.0.1c/apps/pkcs7.c soc2012/exxo/openssl-1.0.1c/apps/pkcs8.c soc2012/exxo/openssl-1.0.1c/apps/pkey.c soc2012/exxo/openssl-1.0.1c/apps/pkeyparam.c soc2012/exxo/openssl-1.0.1c/apps/pkeyutl.c soc2012/exxo/openssl-1.0.1c/apps/prime.c soc2012/exxo/openssl-1.0.1c/apps/privkey.pem soc2012/exxo/openssl-1.0.1c/apps/progs.h soc2012/exxo/openssl-1.0.1c/apps/progs.pl soc2012/exxo/openssl-1.0.1c/apps/rand.c soc2012/exxo/openssl-1.0.1c/apps/req.c soc2012/exxo/openssl-1.0.1c/apps/req.pem soc2012/exxo/openssl-1.0.1c/apps/rsa.c soc2012/exxo/openssl-1.0.1c/apps/rsa8192.pem soc2012/exxo/openssl-1.0.1c/apps/rsautl.c soc2012/exxo/openssl-1.0.1c/apps/s1024key.pem soc2012/exxo/openssl-1.0.1c/apps/s1024req.pem soc2012/exxo/openssl-1.0.1c/apps/s512-key.pem soc2012/exxo/openssl-1.0.1c/apps/s512-req.pem soc2012/exxo/openssl-1.0.1c/apps/s_apps.h soc2012/exxo/openssl-1.0.1c/apps/s_cb.c soc2012/exxo/openssl-1.0.1c/apps/s_client.c soc2012/exxo/openssl-1.0.1c/apps/s_server.c soc2012/exxo/openssl-1.0.1c/apps/s_socket.c soc2012/exxo/openssl-1.0.1c/apps/s_time.c soc2012/exxo/openssl-1.0.1c/apps/server.pem soc2012/exxo/openssl-1.0.1c/apps/server.srl soc2012/exxo/openssl-1.0.1c/apps/server2.pem soc2012/exxo/openssl-1.0.1c/apps/sess_id.c soc2012/exxo/openssl-1.0.1c/apps/set/ soc2012/exxo/openssl-1.0.1c/apps/set/set-g-ca.pem soc2012/exxo/openssl-1.0.1c/apps/set/set-m-ca.pem soc2012/exxo/openssl-1.0.1c/apps/set/set_b_ca.pem soc2012/exxo/openssl-1.0.1c/apps/set/set_c_ca.pem soc2012/exxo/openssl-1.0.1c/apps/set/set_d_ct.pem soc2012/exxo/openssl-1.0.1c/apps/set/set_root.pem soc2012/exxo/openssl-1.0.1c/apps/smime.c soc2012/exxo/openssl-1.0.1c/apps/speed.c soc2012/exxo/openssl-1.0.1c/apps/spkac.c soc2012/exxo/openssl-1.0.1c/apps/srp.c soc2012/exxo/openssl-1.0.1c/apps/testCA.pem soc2012/exxo/openssl-1.0.1c/apps/testdsa.h soc2012/exxo/openssl-1.0.1c/apps/testrsa.h soc2012/exxo/openssl-1.0.1c/apps/timeouts.h soc2012/exxo/openssl-1.0.1c/apps/ts.c soc2012/exxo/openssl-1.0.1c/apps/tsget soc2012/exxo/openssl-1.0.1c/apps/verify.c soc2012/exxo/openssl-1.0.1c/apps/version.c soc2012/exxo/openssl-1.0.1c/apps/vms_decc_init.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/apps/winrand.c soc2012/exxo/openssl-1.0.1c/apps/x509.c soc2012/exxo/openssl-1.0.1c/bugs/ soc2012/exxo/openssl-1.0.1c/bugs/MS soc2012/exxo/openssl-1.0.1c/bugs/SSLv3 soc2012/exxo/openssl-1.0.1c/bugs/alpha.c soc2012/exxo/openssl-1.0.1c/bugs/dggccbug.c soc2012/exxo/openssl-1.0.1c/bugs/sgiccbug.c soc2012/exxo/openssl-1.0.1c/bugs/sslref.dif soc2012/exxo/openssl-1.0.1c/bugs/stream.c soc2012/exxo/openssl-1.0.1c/bugs/ultrixcc.c soc2012/exxo/openssl-1.0.1c/certs/ soc2012/exxo/openssl-1.0.1c/certs/README.RootCerts soc2012/exxo/openssl-1.0.1c/certs/demo/ soc2012/exxo/openssl-1.0.1c/certs/demo/ca-cert.pem soc2012/exxo/openssl-1.0.1c/certs/demo/dsa-ca.pem soc2012/exxo/openssl-1.0.1c/certs/demo/dsa-pca.pem soc2012/exxo/openssl-1.0.1c/certs/demo/pca-cert.pem soc2012/exxo/openssl-1.0.1c/certs/expired/ soc2012/exxo/openssl-1.0.1c/certs/expired/ICE.crl soc2012/exxo/openssl-1.0.1c/config (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/ soc2012/exxo/openssl-1.0.1c/crypto/LPdir_nyi.c soc2012/exxo/openssl-1.0.1c/crypto/LPdir_unix.c soc2012/exxo/openssl-1.0.1c/crypto/LPdir_vms.c soc2012/exxo/openssl-1.0.1c/crypto/LPdir_win.c soc2012/exxo/openssl-1.0.1c/crypto/LPdir_win32.c soc2012/exxo/openssl-1.0.1c/crypto/LPdir_wince.c soc2012/exxo/openssl-1.0.1c/crypto/Makefile soc2012/exxo/openssl-1.0.1c/crypto/aes/ soc2012/exxo/openssl-1.0.1c/crypto/aes/Makefile soc2012/exxo/openssl-1.0.1c/crypto/aes/README soc2012/exxo/openssl-1.0.1c/crypto/aes/aes.h soc2012/exxo/openssl-1.0.1c/crypto/aes/aes_cbc.c soc2012/exxo/openssl-1.0.1c/crypto/aes/aes_cfb.c soc2012/exxo/openssl-1.0.1c/crypto/aes/aes_core.c soc2012/exxo/openssl-1.0.1c/crypto/aes/aes_ctr.c soc2012/exxo/openssl-1.0.1c/crypto/aes/aes_ecb.c soc2012/exxo/openssl-1.0.1c/crypto/aes/aes_ige.c soc2012/exxo/openssl-1.0.1c/crypto/aes/aes_locl.h soc2012/exxo/openssl-1.0.1c/crypto/aes/aes_misc.c soc2012/exxo/openssl-1.0.1c/crypto/aes/aes_ofb.c soc2012/exxo/openssl-1.0.1c/crypto/aes/aes_wrap.c soc2012/exxo/openssl-1.0.1c/crypto/aes/aes_x86core.c soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/ soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/aes-586.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/aes-armv4.pl soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/aes-ia64.S soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/aes-mips.pl soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/aes-parisc.pl soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/aes-ppc.pl soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/aes-s390x.pl soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/aes-sparcv9.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/aes-x86_64.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/aesni-sha1-x86_64.pl soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/aesni-x86.pl soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/aesni-x86_64.pl soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/bsaes-x86_64.pl soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/vpaes-x86.pl soc2012/exxo/openssl-1.0.1c/crypto/aes/asm/vpaes-x86_64.pl soc2012/exxo/openssl-1.0.1c/crypto/alphacpuid.pl soc2012/exxo/openssl-1.0.1c/crypto/arm_arch.h soc2012/exxo/openssl-1.0.1c/crypto/armcap.c soc2012/exxo/openssl-1.0.1c/crypto/armv4cpuid.S soc2012/exxo/openssl-1.0.1c/crypto/asn1/ soc2012/exxo/openssl-1.0.1c/crypto/asn1/Makefile soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_bitstr.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_bool.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_bytes.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_d2i_fp.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_digest.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_dup.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_enum.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_gentm.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_i2d_fp.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_int.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_mbstr.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_object.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_octet.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_print.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_set.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_sign.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_strex.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_strnid.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_time.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_type.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_utctm.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_utf8.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/a_verify.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/ameth_lib.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/asn1.h soc2012/exxo/openssl-1.0.1c/crypto/asn1/asn1_err.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/asn1_gen.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/asn1_lib.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/asn1_locl.h soc2012/exxo/openssl-1.0.1c/crypto/asn1/asn1_mac.h soc2012/exxo/openssl-1.0.1c/crypto/asn1/asn1_par.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/asn1t.h soc2012/exxo/openssl-1.0.1c/crypto/asn1/asn_mime.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/asn_moid.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/asn_pack.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/bio_asn1.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/bio_ndef.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/charmap.h soc2012/exxo/openssl-1.0.1c/crypto/asn1/charmap.pl soc2012/exxo/openssl-1.0.1c/crypto/asn1/d2i_pr.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/d2i_pu.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/evp_asn1.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/f_enum.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/f_int.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/f_string.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/i2d_pr.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/i2d_pu.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/n_pkey.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/nsseq.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/p5_pbe.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/p5_pbev2.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/p8_pkey.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/t_bitst.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/t_crl.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/t_pkey.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/t_req.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/t_spki.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/t_x509.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/t_x509a.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/tasn_dec.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/tasn_enc.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/tasn_fre.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/tasn_new.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/tasn_prn.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/tasn_typ.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/tasn_utl.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_algor.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_attrib.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_bignum.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_crl.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_exten.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_info.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_long.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_name.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_nx509.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_pkey.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_pubkey.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_req.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_sig.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_spki.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_val.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_x509.c soc2012/exxo/openssl-1.0.1c/crypto/asn1/x_x509a.c soc2012/exxo/openssl-1.0.1c/crypto/bf/ soc2012/exxo/openssl-1.0.1c/crypto/bf/COPYRIGHT soc2012/exxo/openssl-1.0.1c/crypto/bf/INSTALL soc2012/exxo/openssl-1.0.1c/crypto/bf/Makefile soc2012/exxo/openssl-1.0.1c/crypto/bf/README soc2012/exxo/openssl-1.0.1c/crypto/bf/VERSION soc2012/exxo/openssl-1.0.1c/crypto/bf/asm/ soc2012/exxo/openssl-1.0.1c/crypto/bf/asm/bf-586.pl soc2012/exxo/openssl-1.0.1c/crypto/bf/asm/bf-686.pl soc2012/exxo/openssl-1.0.1c/crypto/bf/asm/readme soc2012/exxo/openssl-1.0.1c/crypto/bf/bf_cbc.c soc2012/exxo/openssl-1.0.1c/crypto/bf/bf_cfb64.c soc2012/exxo/openssl-1.0.1c/crypto/bf/bf_ecb.c soc2012/exxo/openssl-1.0.1c/crypto/bf/bf_enc.c soc2012/exxo/openssl-1.0.1c/crypto/bf/bf_locl.h soc2012/exxo/openssl-1.0.1c/crypto/bf/bf_ofb64.c soc2012/exxo/openssl-1.0.1c/crypto/bf/bf_opts.c soc2012/exxo/openssl-1.0.1c/crypto/bf/bf_pi.h soc2012/exxo/openssl-1.0.1c/crypto/bf/bf_skey.c soc2012/exxo/openssl-1.0.1c/crypto/bf/bfs.cpp soc2012/exxo/openssl-1.0.1c/crypto/bf/bfspeed.c soc2012/exxo/openssl-1.0.1c/crypto/bf/bftest.c soc2012/exxo/openssl-1.0.1c/crypto/bf/blowfish.h soc2012/exxo/openssl-1.0.1c/crypto/bio/ soc2012/exxo/openssl-1.0.1c/crypto/bio/Makefile soc2012/exxo/openssl-1.0.1c/crypto/bio/b_dump.c soc2012/exxo/openssl-1.0.1c/crypto/bio/b_print.c soc2012/exxo/openssl-1.0.1c/crypto/bio/b_sock.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bf_buff.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bf_lbuf.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bf_nbio.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bf_null.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bio.h soc2012/exxo/openssl-1.0.1c/crypto/bio/bio_cb.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bio_err.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bio_lcl.h soc2012/exxo/openssl-1.0.1c/crypto/bio/bio_lib.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bss_acpt.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bss_bio.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bss_conn.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bss_dgram.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bss_fd.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bss_file.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bss_log.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bss_mem.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bss_null.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bss_rtcp.c soc2012/exxo/openssl-1.0.1c/crypto/bio/bss_sock.c soc2012/exxo/openssl-1.0.1c/crypto/bn/ soc2012/exxo/openssl-1.0.1c/crypto/bn/Makefile soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/ soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/README soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/alpha-mont.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/armv4-gf2m.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/armv4-mont.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/bn-586.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/co-586.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/ia64-mont.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/ia64.S soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/mips-mont.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/mips.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/mips3-mont.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/mips3.s soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/modexp512-x86_64.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/pa-risc2.s soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/pa-risc2W.s soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/parisc-mont.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/ppc-mont.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/ppc.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/ppc64-mont.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/s390x-gf2m.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/s390x-mont.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/s390x.S (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/sparcv8.S soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/sparcv8plus.S soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/sparcv9-mont.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/sparcv9a-mont.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/via-mont.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/vms.mar soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86/ soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86-gf2m.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86-mont.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86/add.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86/comba.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86/div.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86/f soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86/mul.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86/mul_add.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86/sqr.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86/sub.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86_64-gcc.c soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86_64-gf2m.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86_64-mont.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/bn/asm/x86_64-mont5.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/bn/bn.h soc2012/exxo/openssl-1.0.1c/crypto/bn/bn.mul soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_add.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_asm.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_blind.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_const.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_ctx.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_depr.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_div.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_err.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_exp.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_exp2.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_gcd.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_gf2m.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_kron.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_lcl.h soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_lib.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_mod.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_mont.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_mpi.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_mul.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_nist.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_prime.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_prime.h soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_prime.pl soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_print.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_rand.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_recp.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_shift.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_sqr.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_sqrt.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_word.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bn_x931p.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bnspeed.c soc2012/exxo/openssl-1.0.1c/crypto/bn/bntest.c soc2012/exxo/openssl-1.0.1c/crypto/bn/divtest.c soc2012/exxo/openssl-1.0.1c/crypto/bn/exp.c soc2012/exxo/openssl-1.0.1c/crypto/bn/expspeed.c soc2012/exxo/openssl-1.0.1c/crypto/bn/exptest.c soc2012/exxo/openssl-1.0.1c/crypto/bn/todo soc2012/exxo/openssl-1.0.1c/crypto/bn/vms-helper.c soc2012/exxo/openssl-1.0.1c/crypto/buffer/ soc2012/exxo/openssl-1.0.1c/crypto/buffer/Makefile soc2012/exxo/openssl-1.0.1c/crypto/buffer/buf_err.c soc2012/exxo/openssl-1.0.1c/crypto/buffer/buf_str.c soc2012/exxo/openssl-1.0.1c/crypto/buffer/buffer.c soc2012/exxo/openssl-1.0.1c/crypto/buffer/buffer.h soc2012/exxo/openssl-1.0.1c/crypto/camellia/ soc2012/exxo/openssl-1.0.1c/crypto/camellia/Makefile soc2012/exxo/openssl-1.0.1c/crypto/camellia/asm/ soc2012/exxo/openssl-1.0.1c/crypto/camellia/asm/cmll-x86.pl soc2012/exxo/openssl-1.0.1c/crypto/camellia/asm/cmll-x86_64.pl soc2012/exxo/openssl-1.0.1c/crypto/camellia/camellia.c soc2012/exxo/openssl-1.0.1c/crypto/camellia/camellia.h soc2012/exxo/openssl-1.0.1c/crypto/camellia/cmll_cbc.c soc2012/exxo/openssl-1.0.1c/crypto/camellia/cmll_cfb.c soc2012/exxo/openssl-1.0.1c/crypto/camellia/cmll_ctr.c soc2012/exxo/openssl-1.0.1c/crypto/camellia/cmll_ecb.c soc2012/exxo/openssl-1.0.1c/crypto/camellia/cmll_locl.h soc2012/exxo/openssl-1.0.1c/crypto/camellia/cmll_misc.c soc2012/exxo/openssl-1.0.1c/crypto/camellia/cmll_ofb.c soc2012/exxo/openssl-1.0.1c/crypto/camellia/cmll_utl.c soc2012/exxo/openssl-1.0.1c/crypto/cast/ soc2012/exxo/openssl-1.0.1c/crypto/cast/Makefile soc2012/exxo/openssl-1.0.1c/crypto/cast/asm/ soc2012/exxo/openssl-1.0.1c/crypto/cast/asm/cast-586.pl soc2012/exxo/openssl-1.0.1c/crypto/cast/asm/readme soc2012/exxo/openssl-1.0.1c/crypto/cast/c_cfb64.c soc2012/exxo/openssl-1.0.1c/crypto/cast/c_ecb.c soc2012/exxo/openssl-1.0.1c/crypto/cast/c_enc.c soc2012/exxo/openssl-1.0.1c/crypto/cast/c_ofb64.c soc2012/exxo/openssl-1.0.1c/crypto/cast/c_skey.c soc2012/exxo/openssl-1.0.1c/crypto/cast/cast.h soc2012/exxo/openssl-1.0.1c/crypto/cast/cast_lcl.h soc2012/exxo/openssl-1.0.1c/crypto/cast/cast_s.h soc2012/exxo/openssl-1.0.1c/crypto/cast/cast_spd.c soc2012/exxo/openssl-1.0.1c/crypto/cast/castopts.c soc2012/exxo/openssl-1.0.1c/crypto/cast/casts.cpp soc2012/exxo/openssl-1.0.1c/crypto/cast/casttest.c soc2012/exxo/openssl-1.0.1c/crypto/cmac/ soc2012/exxo/openssl-1.0.1c/crypto/cmac/Makefile soc2012/exxo/openssl-1.0.1c/crypto/cmac/cm_ameth.c soc2012/exxo/openssl-1.0.1c/crypto/cmac/cm_pmeth.c soc2012/exxo/openssl-1.0.1c/crypto/cmac/cmac.c soc2012/exxo/openssl-1.0.1c/crypto/cmac/cmac.h soc2012/exxo/openssl-1.0.1c/crypto/cms/ soc2012/exxo/openssl-1.0.1c/crypto/cms/Makefile soc2012/exxo/openssl-1.0.1c/crypto/cms/cms.h soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_asn1.c soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_att.c soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_cd.c soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_dd.c soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_enc.c soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_env.c soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_err.c soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_ess.c soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_io.c soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_lcl.h soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_lib.c soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_pwri.c soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_sd.c soc2012/exxo/openssl-1.0.1c/crypto/cms/cms_smime.c soc2012/exxo/openssl-1.0.1c/crypto/comp/ soc2012/exxo/openssl-1.0.1c/crypto/comp/Makefile soc2012/exxo/openssl-1.0.1c/crypto/comp/c_rle.c soc2012/exxo/openssl-1.0.1c/crypto/comp/c_zlib.c soc2012/exxo/openssl-1.0.1c/crypto/comp/comp.h soc2012/exxo/openssl-1.0.1c/crypto/comp/comp_err.c soc2012/exxo/openssl-1.0.1c/crypto/comp/comp_lib.c soc2012/exxo/openssl-1.0.1c/crypto/conf/ soc2012/exxo/openssl-1.0.1c/crypto/conf/Makefile soc2012/exxo/openssl-1.0.1c/crypto/conf/README soc2012/exxo/openssl-1.0.1c/crypto/conf/cnf_save.c soc2012/exxo/openssl-1.0.1c/crypto/conf/conf.h soc2012/exxo/openssl-1.0.1c/crypto/conf/conf_api.c soc2012/exxo/openssl-1.0.1c/crypto/conf/conf_api.h soc2012/exxo/openssl-1.0.1c/crypto/conf/conf_def.c soc2012/exxo/openssl-1.0.1c/crypto/conf/conf_def.h soc2012/exxo/openssl-1.0.1c/crypto/conf/conf_err.c soc2012/exxo/openssl-1.0.1c/crypto/conf/conf_lib.c soc2012/exxo/openssl-1.0.1c/crypto/conf/conf_mall.c soc2012/exxo/openssl-1.0.1c/crypto/conf/conf_mod.c soc2012/exxo/openssl-1.0.1c/crypto/conf/conf_sap.c soc2012/exxo/openssl-1.0.1c/crypto/conf/keysets.pl soc2012/exxo/openssl-1.0.1c/crypto/conf/ssleay.cnf soc2012/exxo/openssl-1.0.1c/crypto/conf/test.c soc2012/exxo/openssl-1.0.1c/crypto/cpt_err.c soc2012/exxo/openssl-1.0.1c/crypto/cryptlib.c soc2012/exxo/openssl-1.0.1c/crypto/cryptlib.h soc2012/exxo/openssl-1.0.1c/crypto/crypto-lib.com soc2012/exxo/openssl-1.0.1c/crypto/crypto.h soc2012/exxo/openssl-1.0.1c/crypto/cversion.c soc2012/exxo/openssl-1.0.1c/crypto/des/ soc2012/exxo/openssl-1.0.1c/crypto/des/COPYRIGHT soc2012/exxo/openssl-1.0.1c/crypto/des/DES.pm soc2012/exxo/openssl-1.0.1c/crypto/des/DES.xs soc2012/exxo/openssl-1.0.1c/crypto/des/FILES0 soc2012/exxo/openssl-1.0.1c/crypto/des/INSTALL soc2012/exxo/openssl-1.0.1c/crypto/des/Imakefile soc2012/exxo/openssl-1.0.1c/crypto/des/KERBEROS soc2012/exxo/openssl-1.0.1c/crypto/des/Makefile soc2012/exxo/openssl-1.0.1c/crypto/des/README soc2012/exxo/openssl-1.0.1c/crypto/des/VERSION soc2012/exxo/openssl-1.0.1c/crypto/des/asm/ soc2012/exxo/openssl-1.0.1c/crypto/des/asm/crypt586.pl soc2012/exxo/openssl-1.0.1c/crypto/des/asm/des-586.pl soc2012/exxo/openssl-1.0.1c/crypto/des/asm/des_enc.m4 soc2012/exxo/openssl-1.0.1c/crypto/des/asm/desboth.pl soc2012/exxo/openssl-1.0.1c/crypto/des/asm/readme soc2012/exxo/openssl-1.0.1c/crypto/des/cbc3_enc.c soc2012/exxo/openssl-1.0.1c/crypto/des/cbc_cksm.c soc2012/exxo/openssl-1.0.1c/crypto/des/cbc_enc.c soc2012/exxo/openssl-1.0.1c/crypto/des/cfb64ede.c soc2012/exxo/openssl-1.0.1c/crypto/des/cfb64enc.c soc2012/exxo/openssl-1.0.1c/crypto/des/cfb_enc.c soc2012/exxo/openssl-1.0.1c/crypto/des/des-lib.com soc2012/exxo/openssl-1.0.1c/crypto/des/des.c soc2012/exxo/openssl-1.0.1c/crypto/des/des.h soc2012/exxo/openssl-1.0.1c/crypto/des/des.pod soc2012/exxo/openssl-1.0.1c/crypto/des/des3s.cpp soc2012/exxo/openssl-1.0.1c/crypto/des/des_enc.c soc2012/exxo/openssl-1.0.1c/crypto/des/des_locl.h soc2012/exxo/openssl-1.0.1c/crypto/des/des_old.c soc2012/exxo/openssl-1.0.1c/crypto/des/des_old.h soc2012/exxo/openssl-1.0.1c/crypto/des/des_old2.c soc2012/exxo/openssl-1.0.1c/crypto/des/des_opts.c soc2012/exxo/openssl-1.0.1c/crypto/des/des_ver.h soc2012/exxo/openssl-1.0.1c/crypto/des/dess.cpp soc2012/exxo/openssl-1.0.1c/crypto/des/destest.c soc2012/exxo/openssl-1.0.1c/crypto/des/ecb3_enc.c soc2012/exxo/openssl-1.0.1c/crypto/des/ecb_enc.c soc2012/exxo/openssl-1.0.1c/crypto/des/ede_cbcm_enc.c soc2012/exxo/openssl-1.0.1c/crypto/des/enc_read.c soc2012/exxo/openssl-1.0.1c/crypto/des/enc_writ.c soc2012/exxo/openssl-1.0.1c/crypto/des/fcrypt.c soc2012/exxo/openssl-1.0.1c/crypto/des/fcrypt_b.c soc2012/exxo/openssl-1.0.1c/crypto/des/makefile.bc soc2012/exxo/openssl-1.0.1c/crypto/des/ncbc_enc.c soc2012/exxo/openssl-1.0.1c/crypto/des/ofb64ede.c soc2012/exxo/openssl-1.0.1c/crypto/des/ofb64enc.c soc2012/exxo/openssl-1.0.1c/crypto/des/ofb_enc.c soc2012/exxo/openssl-1.0.1c/crypto/des/options.txt soc2012/exxo/openssl-1.0.1c/crypto/des/pcbc_enc.c soc2012/exxo/openssl-1.0.1c/crypto/des/qud_cksm.c soc2012/exxo/openssl-1.0.1c/crypto/des/rand_key.c soc2012/exxo/openssl-1.0.1c/crypto/des/read2pwd.c soc2012/exxo/openssl-1.0.1c/crypto/des/read_pwd.c soc2012/exxo/openssl-1.0.1c/crypto/des/rpc_des.h soc2012/exxo/openssl-1.0.1c/crypto/des/rpc_enc.c soc2012/exxo/openssl-1.0.1c/crypto/des/rpw.c soc2012/exxo/openssl-1.0.1c/crypto/des/set_key.c soc2012/exxo/openssl-1.0.1c/crypto/des/speed.c soc2012/exxo/openssl-1.0.1c/crypto/des/spr.h soc2012/exxo/openssl-1.0.1c/crypto/des/str2key.c soc2012/exxo/openssl-1.0.1c/crypto/des/t/ soc2012/exxo/openssl-1.0.1c/crypto/des/t/test soc2012/exxo/openssl-1.0.1c/crypto/des/times/ soc2012/exxo/openssl-1.0.1c/crypto/des/times/486-50.sol soc2012/exxo/openssl-1.0.1c/crypto/des/times/586-100.lnx soc2012/exxo/openssl-1.0.1c/crypto/des/times/686-200.fre soc2012/exxo/openssl-1.0.1c/crypto/des/times/aix.cc (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/des/times/alpha.cc soc2012/exxo/openssl-1.0.1c/crypto/des/times/hpux.cc soc2012/exxo/openssl-1.0.1c/crypto/des/times/sparc.gcc soc2012/exxo/openssl-1.0.1c/crypto/des/times/usparc.cc soc2012/exxo/openssl-1.0.1c/crypto/des/typemap soc2012/exxo/openssl-1.0.1c/crypto/des/xcbc_enc.c soc2012/exxo/openssl-1.0.1c/crypto/dh/ soc2012/exxo/openssl-1.0.1c/crypto/dh/Makefile soc2012/exxo/openssl-1.0.1c/crypto/dh/dh.h soc2012/exxo/openssl-1.0.1c/crypto/dh/dh1024.pem soc2012/exxo/openssl-1.0.1c/crypto/dh/dh192.pem soc2012/exxo/openssl-1.0.1c/crypto/dh/dh2048.pem soc2012/exxo/openssl-1.0.1c/crypto/dh/dh4096.pem soc2012/exxo/openssl-1.0.1c/crypto/dh/dh512.pem soc2012/exxo/openssl-1.0.1c/crypto/dh/dh_ameth.c soc2012/exxo/openssl-1.0.1c/crypto/dh/dh_asn1.c soc2012/exxo/openssl-1.0.1c/crypto/dh/dh_check.c soc2012/exxo/openssl-1.0.1c/crypto/dh/dh_depr.c soc2012/exxo/openssl-1.0.1c/crypto/dh/dh_err.c soc2012/exxo/openssl-1.0.1c/crypto/dh/dh_gen.c soc2012/exxo/openssl-1.0.1c/crypto/dh/dh_key.c soc2012/exxo/openssl-1.0.1c/crypto/dh/dh_lib.c soc2012/exxo/openssl-1.0.1c/crypto/dh/dh_pmeth.c soc2012/exxo/openssl-1.0.1c/crypto/dh/dh_prn.c soc2012/exxo/openssl-1.0.1c/crypto/dh/dhtest.c soc2012/exxo/openssl-1.0.1c/crypto/dh/example soc2012/exxo/openssl-1.0.1c/crypto/dh/generate (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/dh/p1024.c soc2012/exxo/openssl-1.0.1c/crypto/dh/p192.c soc2012/exxo/openssl-1.0.1c/crypto/dh/p512.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/ soc2012/exxo/openssl-1.0.1c/crypto/dsa/Makefile soc2012/exxo/openssl-1.0.1c/crypto/dsa/README soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa.h soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa_ameth.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa_asn1.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa_depr.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa_err.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa_gen.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa_key.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa_lib.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa_locl.h soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa_ossl.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa_pmeth.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa_prn.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa_sign.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsa_vrf.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsagen.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/dsatest.c soc2012/exxo/openssl-1.0.1c/crypto/dsa/fips186a.txt soc2012/exxo/openssl-1.0.1c/crypto/dso/ soc2012/exxo/openssl-1.0.1c/crypto/dso/Makefile soc2012/exxo/openssl-1.0.1c/crypto/dso/README soc2012/exxo/openssl-1.0.1c/crypto/dso/dso.h soc2012/exxo/openssl-1.0.1c/crypto/dso/dso_beos.c soc2012/exxo/openssl-1.0.1c/crypto/dso/dso_dl.c soc2012/exxo/openssl-1.0.1c/crypto/dso/dso_dlfcn.c soc2012/exxo/openssl-1.0.1c/crypto/dso/dso_err.c soc2012/exxo/openssl-1.0.1c/crypto/dso/dso_lib.c soc2012/exxo/openssl-1.0.1c/crypto/dso/dso_null.c soc2012/exxo/openssl-1.0.1c/crypto/dso/dso_openssl.c soc2012/exxo/openssl-1.0.1c/crypto/dso/dso_vms.c soc2012/exxo/openssl-1.0.1c/crypto/dso/dso_win32.c soc2012/exxo/openssl-1.0.1c/crypto/ebcdic.c soc2012/exxo/openssl-1.0.1c/crypto/ebcdic.h soc2012/exxo/openssl-1.0.1c/crypto/ec/ soc2012/exxo/openssl-1.0.1c/crypto/ec/Makefile soc2012/exxo/openssl-1.0.1c/crypto/ec/ec.h soc2012/exxo/openssl-1.0.1c/crypto/ec/ec2_mult.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec2_oct.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec2_smpl.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec_ameth.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec_asn1.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec_check.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec_curve.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec_cvt.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec_err.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec_key.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec_lcl.h soc2012/exxo/openssl-1.0.1c/crypto/ec/ec_lib.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec_mult.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec_oct.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec_pmeth.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ec_print.c soc2012/exxo/openssl-1.0.1c/crypto/ec/eck_prn.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ecp_mont.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ecp_nist.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ecp_nistp224.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ecp_nistp256.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ecp_nistp521.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ecp_nistputil.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ecp_oct.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ecp_smpl.c soc2012/exxo/openssl-1.0.1c/crypto/ec/ectest.c soc2012/exxo/openssl-1.0.1c/crypto/ecdh/ soc2012/exxo/openssl-1.0.1c/crypto/ecdh/Makefile soc2012/exxo/openssl-1.0.1c/crypto/ecdh/ecdh.h soc2012/exxo/openssl-1.0.1c/crypto/ecdh/ecdhtest.c soc2012/exxo/openssl-1.0.1c/crypto/ecdh/ech_err.c soc2012/exxo/openssl-1.0.1c/crypto/ecdh/ech_key.c soc2012/exxo/openssl-1.0.1c/crypto/ecdh/ech_lib.c soc2012/exxo/openssl-1.0.1c/crypto/ecdh/ech_locl.h soc2012/exxo/openssl-1.0.1c/crypto/ecdh/ech_ossl.c soc2012/exxo/openssl-1.0.1c/crypto/ecdsa/ soc2012/exxo/openssl-1.0.1c/crypto/ecdsa/Makefile soc2012/exxo/openssl-1.0.1c/crypto/ecdsa/ecdsa.h soc2012/exxo/openssl-1.0.1c/crypto/ecdsa/ecdsatest.c soc2012/exxo/openssl-1.0.1c/crypto/ecdsa/ecs_asn1.c soc2012/exxo/openssl-1.0.1c/crypto/ecdsa/ecs_err.c soc2012/exxo/openssl-1.0.1c/crypto/ecdsa/ecs_lib.c soc2012/exxo/openssl-1.0.1c/crypto/ecdsa/ecs_locl.h soc2012/exxo/openssl-1.0.1c/crypto/ecdsa/ecs_ossl.c soc2012/exxo/openssl-1.0.1c/crypto/ecdsa/ecs_sign.c soc2012/exxo/openssl-1.0.1c/crypto/ecdsa/ecs_vrf.c soc2012/exxo/openssl-1.0.1c/crypto/engine/ soc2012/exxo/openssl-1.0.1c/crypto/engine/Makefile soc2012/exxo/openssl-1.0.1c/crypto/engine/README soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_all.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_cnf.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_cryptodev.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_ctrl.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_dyn.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_err.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_fat.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_init.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_int.h soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_lib.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_list.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_openssl.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_pkey.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_rdrand.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_rsax.c soc2012/exxo/openssl-1.0.1c/crypto/engine/eng_table.c soc2012/exxo/openssl-1.0.1c/crypto/engine/engine.h soc2012/exxo/openssl-1.0.1c/crypto/engine/enginetest.c soc2012/exxo/openssl-1.0.1c/crypto/engine/tb_asnmth.c soc2012/exxo/openssl-1.0.1c/crypto/engine/tb_cipher.c soc2012/exxo/openssl-1.0.1c/crypto/engine/tb_dh.c soc2012/exxo/openssl-1.0.1c/crypto/engine/tb_digest.c soc2012/exxo/openssl-1.0.1c/crypto/engine/tb_dsa.c soc2012/exxo/openssl-1.0.1c/crypto/engine/tb_ecdh.c soc2012/exxo/openssl-1.0.1c/crypto/engine/tb_ecdsa.c soc2012/exxo/openssl-1.0.1c/crypto/engine/tb_pkmeth.c soc2012/exxo/openssl-1.0.1c/crypto/engine/tb_rand.c soc2012/exxo/openssl-1.0.1c/crypto/engine/tb_rsa.c soc2012/exxo/openssl-1.0.1c/crypto/engine/tb_store.c soc2012/exxo/openssl-1.0.1c/crypto/err/ soc2012/exxo/openssl-1.0.1c/crypto/err/Makefile soc2012/exxo/openssl-1.0.1c/crypto/err/err.c soc2012/exxo/openssl-1.0.1c/crypto/err/err.h soc2012/exxo/openssl-1.0.1c/crypto/err/err_all.c soc2012/exxo/openssl-1.0.1c/crypto/err/err_prn.c soc2012/exxo/openssl-1.0.1c/crypto/err/openssl.ec soc2012/exxo/openssl-1.0.1c/crypto/evp/ soc2012/exxo/openssl-1.0.1c/crypto/evp/Makefile soc2012/exxo/openssl-1.0.1c/crypto/evp/bio_b64.c soc2012/exxo/openssl-1.0.1c/crypto/evp/bio_enc.c soc2012/exxo/openssl-1.0.1c/crypto/evp/bio_md.c soc2012/exxo/openssl-1.0.1c/crypto/evp/bio_ok.c soc2012/exxo/openssl-1.0.1c/crypto/evp/c_all.c soc2012/exxo/openssl-1.0.1c/crypto/evp/c_allc.c soc2012/exxo/openssl-1.0.1c/crypto/evp/c_alld.c soc2012/exxo/openssl-1.0.1c/crypto/evp/digest.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_aes.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_aes_cbc_hmac_sha1.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_bf.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_camellia.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_cast.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_des.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_des3.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_dsa.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_idea.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_null.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_old.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_rc2.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_rc4.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_rc4_hmac_md5.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_rc5.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_seed.c soc2012/exxo/openssl-1.0.1c/crypto/evp/e_xcbc_d.c soc2012/exxo/openssl-1.0.1c/crypto/evp/encode.c soc2012/exxo/openssl-1.0.1c/crypto/evp/evp.h soc2012/exxo/openssl-1.0.1c/crypto/evp/evp_acnf.c soc2012/exxo/openssl-1.0.1c/crypto/evp/evp_enc.c soc2012/exxo/openssl-1.0.1c/crypto/evp/evp_err.c soc2012/exxo/openssl-1.0.1c/crypto/evp/evp_fips.c soc2012/exxo/openssl-1.0.1c/crypto/evp/evp_key.c soc2012/exxo/openssl-1.0.1c/crypto/evp/evp_lib.c soc2012/exxo/openssl-1.0.1c/crypto/evp/evp_locl.h soc2012/exxo/openssl-1.0.1c/crypto/evp/evp_pbe.c soc2012/exxo/openssl-1.0.1c/crypto/evp/evp_pkey.c soc2012/exxo/openssl-1.0.1c/crypto/evp/evp_test.c soc2012/exxo/openssl-1.0.1c/crypto/evp/evptests.txt soc2012/exxo/openssl-1.0.1c/crypto/evp/m_dss.c soc2012/exxo/openssl-1.0.1c/crypto/evp/m_dss1.c soc2012/exxo/openssl-1.0.1c/crypto/evp/m_ecdsa.c soc2012/exxo/openssl-1.0.1c/crypto/evp/m_md2.c soc2012/exxo/openssl-1.0.1c/crypto/evp/m_md4.c soc2012/exxo/openssl-1.0.1c/crypto/evp/m_md5.c soc2012/exxo/openssl-1.0.1c/crypto/evp/m_mdc2.c soc2012/exxo/openssl-1.0.1c/crypto/evp/m_null.c soc2012/exxo/openssl-1.0.1c/crypto/evp/m_ripemd.c soc2012/exxo/openssl-1.0.1c/crypto/evp/m_sha.c soc2012/exxo/openssl-1.0.1c/crypto/evp/m_sha1.c soc2012/exxo/openssl-1.0.1c/crypto/evp/m_sigver.c soc2012/exxo/openssl-1.0.1c/crypto/evp/m_wp.c soc2012/exxo/openssl-1.0.1c/crypto/evp/names.c soc2012/exxo/openssl-1.0.1c/crypto/evp/openbsd_hw.c soc2012/exxo/openssl-1.0.1c/crypto/evp/p5_crpt.c soc2012/exxo/openssl-1.0.1c/crypto/evp/p5_crpt2.c soc2012/exxo/openssl-1.0.1c/crypto/evp/p_dec.c soc2012/exxo/openssl-1.0.1c/crypto/evp/p_enc.c soc2012/exxo/openssl-1.0.1c/crypto/evp/p_lib.c soc2012/exxo/openssl-1.0.1c/crypto/evp/p_open.c soc2012/exxo/openssl-1.0.1c/crypto/evp/p_seal.c soc2012/exxo/openssl-1.0.1c/crypto/evp/p_sign.c soc2012/exxo/openssl-1.0.1c/crypto/evp/p_verify.c soc2012/exxo/openssl-1.0.1c/crypto/evp/pmeth_fn.c soc2012/exxo/openssl-1.0.1c/crypto/evp/pmeth_gn.c soc2012/exxo/openssl-1.0.1c/crypto/evp/pmeth_lib.c soc2012/exxo/openssl-1.0.1c/crypto/ex_data.c soc2012/exxo/openssl-1.0.1c/crypto/fips_err.h soc2012/exxo/openssl-1.0.1c/crypto/fips_ers.c soc2012/exxo/openssl-1.0.1c/crypto/hmac/ soc2012/exxo/openssl-1.0.1c/crypto/hmac/Makefile soc2012/exxo/openssl-1.0.1c/crypto/hmac/hm_ameth.c soc2012/exxo/openssl-1.0.1c/crypto/hmac/hm_pmeth.c soc2012/exxo/openssl-1.0.1c/crypto/hmac/hmac.c soc2012/exxo/openssl-1.0.1c/crypto/hmac/hmac.h soc2012/exxo/openssl-1.0.1c/crypto/hmac/hmactest.c soc2012/exxo/openssl-1.0.1c/crypto/ia64cpuid.S soc2012/exxo/openssl-1.0.1c/crypto/idea/ soc2012/exxo/openssl-1.0.1c/crypto/idea/Makefile soc2012/exxo/openssl-1.0.1c/crypto/idea/i_cbc.c soc2012/exxo/openssl-1.0.1c/crypto/idea/i_cfb64.c soc2012/exxo/openssl-1.0.1c/crypto/idea/i_ecb.c soc2012/exxo/openssl-1.0.1c/crypto/idea/i_ofb64.c soc2012/exxo/openssl-1.0.1c/crypto/idea/i_skey.c soc2012/exxo/openssl-1.0.1c/crypto/idea/idea.h soc2012/exxo/openssl-1.0.1c/crypto/idea/idea_lcl.h soc2012/exxo/openssl-1.0.1c/crypto/idea/idea_spd.c soc2012/exxo/openssl-1.0.1c/crypto/idea/ideatest.c soc2012/exxo/openssl-1.0.1c/crypto/idea/version soc2012/exxo/openssl-1.0.1c/crypto/install-crypto.com (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/jpake/ soc2012/exxo/openssl-1.0.1c/crypto/jpake/Makefile soc2012/exxo/openssl-1.0.1c/crypto/jpake/jpake.c soc2012/exxo/openssl-1.0.1c/crypto/jpake/jpake.h soc2012/exxo/openssl-1.0.1c/crypto/jpake/jpake_err.c soc2012/exxo/openssl-1.0.1c/crypto/jpake/jpaketest.c soc2012/exxo/openssl-1.0.1c/crypto/krb5/ soc2012/exxo/openssl-1.0.1c/crypto/krb5/Makefile soc2012/exxo/openssl-1.0.1c/crypto/krb5/krb5_asn.c soc2012/exxo/openssl-1.0.1c/crypto/krb5/krb5_asn.h soc2012/exxo/openssl-1.0.1c/crypto/lhash/ soc2012/exxo/openssl-1.0.1c/crypto/lhash/Makefile soc2012/exxo/openssl-1.0.1c/crypto/lhash/lh_stats.c soc2012/exxo/openssl-1.0.1c/crypto/lhash/lh_test.c soc2012/exxo/openssl-1.0.1c/crypto/lhash/lhash.c soc2012/exxo/openssl-1.0.1c/crypto/lhash/lhash.h soc2012/exxo/openssl-1.0.1c/crypto/lhash/num.pl soc2012/exxo/openssl-1.0.1c/crypto/md2/ soc2012/exxo/openssl-1.0.1c/crypto/md2/Makefile soc2012/exxo/openssl-1.0.1c/crypto/md2/md2.c soc2012/exxo/openssl-1.0.1c/crypto/md2/md2.h soc2012/exxo/openssl-1.0.1c/crypto/md2/md2_dgst.c soc2012/exxo/openssl-1.0.1c/crypto/md2/md2_one.c soc2012/exxo/openssl-1.0.1c/crypto/md2/md2test.c soc2012/exxo/openssl-1.0.1c/crypto/md32_common.h soc2012/exxo/openssl-1.0.1c/crypto/md4/ soc2012/exxo/openssl-1.0.1c/crypto/md4/Makefile soc2012/exxo/openssl-1.0.1c/crypto/md4/md4.c soc2012/exxo/openssl-1.0.1c/crypto/md4/md4.h soc2012/exxo/openssl-1.0.1c/crypto/md4/md4_dgst.c soc2012/exxo/openssl-1.0.1c/crypto/md4/md4_locl.h soc2012/exxo/openssl-1.0.1c/crypto/md4/md4_one.c soc2012/exxo/openssl-1.0.1c/crypto/md4/md4s.cpp soc2012/exxo/openssl-1.0.1c/crypto/md4/md4test.c soc2012/exxo/openssl-1.0.1c/crypto/md5/ soc2012/exxo/openssl-1.0.1c/crypto/md5/Makefile soc2012/exxo/openssl-1.0.1c/crypto/md5/asm/ soc2012/exxo/openssl-1.0.1c/crypto/md5/asm/md5-586.pl soc2012/exxo/openssl-1.0.1c/crypto/md5/asm/md5-ia64.S soc2012/exxo/openssl-1.0.1c/crypto/md5/asm/md5-x86_64.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/md5/md5.c soc2012/exxo/openssl-1.0.1c/crypto/md5/md5.h soc2012/exxo/openssl-1.0.1c/crypto/md5/md5_dgst.c soc2012/exxo/openssl-1.0.1c/crypto/md5/md5_locl.h soc2012/exxo/openssl-1.0.1c/crypto/md5/md5_one.c soc2012/exxo/openssl-1.0.1c/crypto/md5/md5s.cpp soc2012/exxo/openssl-1.0.1c/crypto/md5/md5test.c soc2012/exxo/openssl-1.0.1c/crypto/mdc2/ soc2012/exxo/openssl-1.0.1c/crypto/mdc2/Makefile soc2012/exxo/openssl-1.0.1c/crypto/mdc2/mdc2.h soc2012/exxo/openssl-1.0.1c/crypto/mdc2/mdc2_one.c soc2012/exxo/openssl-1.0.1c/crypto/mdc2/mdc2dgst.c soc2012/exxo/openssl-1.0.1c/crypto/mdc2/mdc2test.c soc2012/exxo/openssl-1.0.1c/crypto/mem.c soc2012/exxo/openssl-1.0.1c/crypto/mem_clr.c soc2012/exxo/openssl-1.0.1c/crypto/mem_dbg.c soc2012/exxo/openssl-1.0.1c/crypto/modes/ soc2012/exxo/openssl-1.0.1c/crypto/modes/Makefile soc2012/exxo/openssl-1.0.1c/crypto/modes/asm/ soc2012/exxo/openssl-1.0.1c/crypto/modes/asm/ghash-alpha.pl soc2012/exxo/openssl-1.0.1c/crypto/modes/asm/ghash-armv4.pl soc2012/exxo/openssl-1.0.1c/crypto/modes/asm/ghash-ia64.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/modes/asm/ghash-parisc.pl soc2012/exxo/openssl-1.0.1c/crypto/modes/asm/ghash-s390x.pl soc2012/exxo/openssl-1.0.1c/crypto/modes/asm/ghash-sparcv9.pl soc2012/exxo/openssl-1.0.1c/crypto/modes/asm/ghash-x86.pl soc2012/exxo/openssl-1.0.1c/crypto/modes/asm/ghash-x86_64.pl soc2012/exxo/openssl-1.0.1c/crypto/modes/cbc128.c soc2012/exxo/openssl-1.0.1c/crypto/modes/ccm128.c soc2012/exxo/openssl-1.0.1c/crypto/modes/cfb128.c soc2012/exxo/openssl-1.0.1c/crypto/modes/ctr128.c soc2012/exxo/openssl-1.0.1c/crypto/modes/cts128.c soc2012/exxo/openssl-1.0.1c/crypto/modes/gcm128.c soc2012/exxo/openssl-1.0.1c/crypto/modes/modes.h soc2012/exxo/openssl-1.0.1c/crypto/modes/modes_lcl.h soc2012/exxo/openssl-1.0.1c/crypto/modes/ofb128.c soc2012/exxo/openssl-1.0.1c/crypto/modes/xts128.c soc2012/exxo/openssl-1.0.1c/crypto/o_dir.c soc2012/exxo/openssl-1.0.1c/crypto/o_dir.h soc2012/exxo/openssl-1.0.1c/crypto/o_dir_test.c soc2012/exxo/openssl-1.0.1c/crypto/o_fips.c soc2012/exxo/openssl-1.0.1c/crypto/o_init.c soc2012/exxo/openssl-1.0.1c/crypto/o_str.c soc2012/exxo/openssl-1.0.1c/crypto/o_str.h soc2012/exxo/openssl-1.0.1c/crypto/o_time.c soc2012/exxo/openssl-1.0.1c/crypto/o_time.h soc2012/exxo/openssl-1.0.1c/crypto/objects/ soc2012/exxo/openssl-1.0.1c/crypto/objects/Makefile soc2012/exxo/openssl-1.0.1c/crypto/objects/o_names.c soc2012/exxo/openssl-1.0.1c/crypto/objects/obj_dat.c soc2012/exxo/openssl-1.0.1c/crypto/objects/obj_dat.h soc2012/exxo/openssl-1.0.1c/crypto/objects/obj_dat.pl soc2012/exxo/openssl-1.0.1c/crypto/objects/obj_err.c soc2012/exxo/openssl-1.0.1c/crypto/objects/obj_lib.c soc2012/exxo/openssl-1.0.1c/crypto/objects/obj_mac.h soc2012/exxo/openssl-1.0.1c/crypto/objects/obj_mac.num soc2012/exxo/openssl-1.0.1c/crypto/objects/obj_xref.c soc2012/exxo/openssl-1.0.1c/crypto/objects/obj_xref.h soc2012/exxo/openssl-1.0.1c/crypto/objects/obj_xref.txt soc2012/exxo/openssl-1.0.1c/crypto/objects/objects.README soc2012/exxo/openssl-1.0.1c/crypto/objects/objects.h soc2012/exxo/openssl-1.0.1c/crypto/objects/objects.pl soc2012/exxo/openssl-1.0.1c/crypto/objects/objects.txt soc2012/exxo/openssl-1.0.1c/crypto/objects/objxref.pl soc2012/exxo/openssl-1.0.1c/crypto/ocsp/ soc2012/exxo/openssl-1.0.1c/crypto/ocsp/Makefile soc2012/exxo/openssl-1.0.1c/crypto/ocsp/ocsp.h soc2012/exxo/openssl-1.0.1c/crypto/ocsp/ocsp_asn.c soc2012/exxo/openssl-1.0.1c/crypto/ocsp/ocsp_cl.c soc2012/exxo/openssl-1.0.1c/crypto/ocsp/ocsp_err.c soc2012/exxo/openssl-1.0.1c/crypto/ocsp/ocsp_ext.c soc2012/exxo/openssl-1.0.1c/crypto/ocsp/ocsp_ht.c soc2012/exxo/openssl-1.0.1c/crypto/ocsp/ocsp_lib.c soc2012/exxo/openssl-1.0.1c/crypto/ocsp/ocsp_prn.c soc2012/exxo/openssl-1.0.1c/crypto/ocsp/ocsp_srv.c soc2012/exxo/openssl-1.0.1c/crypto/ocsp/ocsp_vfy.c soc2012/exxo/openssl-1.0.1c/crypto/opensslconf.h soc2012/exxo/openssl-1.0.1c/crypto/opensslconf.h.in soc2012/exxo/openssl-1.0.1c/crypto/opensslv.h soc2012/exxo/openssl-1.0.1c/crypto/ossl_typ.h soc2012/exxo/openssl-1.0.1c/crypto/pariscid.pl soc2012/exxo/openssl-1.0.1c/crypto/pem/ soc2012/exxo/openssl-1.0.1c/crypto/pem/Makefile soc2012/exxo/openssl-1.0.1c/crypto/pem/message soc2012/exxo/openssl-1.0.1c/crypto/pem/pem.h soc2012/exxo/openssl-1.0.1c/crypto/pem/pem2.h soc2012/exxo/openssl-1.0.1c/crypto/pem/pem_all.c soc2012/exxo/openssl-1.0.1c/crypto/pem/pem_err.c soc2012/exxo/openssl-1.0.1c/crypto/pem/pem_info.c soc2012/exxo/openssl-1.0.1c/crypto/pem/pem_lib.c soc2012/exxo/openssl-1.0.1c/crypto/pem/pem_oth.c soc2012/exxo/openssl-1.0.1c/crypto/pem/pem_pk8.c soc2012/exxo/openssl-1.0.1c/crypto/pem/pem_pkey.c soc2012/exxo/openssl-1.0.1c/crypto/pem/pem_seal.c soc2012/exxo/openssl-1.0.1c/crypto/pem/pem_sign.c soc2012/exxo/openssl-1.0.1c/crypto/pem/pem_x509.c soc2012/exxo/openssl-1.0.1c/crypto/pem/pem_xaux.c soc2012/exxo/openssl-1.0.1c/crypto/pem/pkcs7.lis soc2012/exxo/openssl-1.0.1c/crypto/pem/pvkfmt.c soc2012/exxo/openssl-1.0.1c/crypto/perlasm/ soc2012/exxo/openssl-1.0.1c/crypto/perlasm/cbc.pl soc2012/exxo/openssl-1.0.1c/crypto/perlasm/ppc-xlate.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/perlasm/readme soc2012/exxo/openssl-1.0.1c/crypto/perlasm/x86_64-xlate.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/perlasm/x86asm.pl soc2012/exxo/openssl-1.0.1c/crypto/perlasm/x86gas.pl soc2012/exxo/openssl-1.0.1c/crypto/perlasm/x86masm.pl soc2012/exxo/openssl-1.0.1c/crypto/perlasm/x86nasm.pl soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/ soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/Makefile soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_add.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_asn.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_attr.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_crpt.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_crt.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_decr.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_init.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_key.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_kiss.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_mutl.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_npas.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_p8d.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_p8e.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/p12_utl.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/pk12err.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs12/pkcs12.h soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/ soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/Makefile soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/bio_ber.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/bio_pk7.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/dec.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/des.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/doc soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/enc.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/es1.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/example.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/example.h soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/info.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/infokey.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/p7/ soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/p7/a1 (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/p7/a2 (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/p7/cert.p7c (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/p7/smime.p7m (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/p7/smime.p7s (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/pk7_asn1.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/pk7_attr.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/pk7_dgst.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/pk7_doit.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/pk7_enc.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/pk7_lib.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/pk7_mime.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/pk7_smime.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/pkcs7.h soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/pkcs7err.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/server.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/sign.c soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/ soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/3des.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/3dess.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/c.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/ff soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/msie-e soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/msie-e.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/msie-enc-01 soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/msie-enc-01.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/msie-enc-02 soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/msie-enc-02.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/msie-s-a-e soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/msie-s-a-e.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/nav-smime soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/s.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/t/server.pem soc2012/exxo/openssl-1.0.1c/crypto/pkcs7/verify.c soc2012/exxo/openssl-1.0.1c/crypto/ppccap.c soc2012/exxo/openssl-1.0.1c/crypto/ppccpuid.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/pqueue/ soc2012/exxo/openssl-1.0.1c/crypto/pqueue/Makefile soc2012/exxo/openssl-1.0.1c/crypto/pqueue/pq_test.c soc2012/exxo/openssl-1.0.1c/crypto/pqueue/pqueue.c soc2012/exxo/openssl-1.0.1c/crypto/pqueue/pqueue.h soc2012/exxo/openssl-1.0.1c/crypto/rand/ soc2012/exxo/openssl-1.0.1c/crypto/rand/Makefile soc2012/exxo/openssl-1.0.1c/crypto/rand/md_rand.c soc2012/exxo/openssl-1.0.1c/crypto/rand/rand.h soc2012/exxo/openssl-1.0.1c/crypto/rand/rand_egd.c soc2012/exxo/openssl-1.0.1c/crypto/rand/rand_err.c soc2012/exxo/openssl-1.0.1c/crypto/rand/rand_lcl.h soc2012/exxo/openssl-1.0.1c/crypto/rand/rand_lib.c soc2012/exxo/openssl-1.0.1c/crypto/rand/rand_nw.c soc2012/exxo/openssl-1.0.1c/crypto/rand/rand_os2.c soc2012/exxo/openssl-1.0.1c/crypto/rand/rand_unix.c soc2012/exxo/openssl-1.0.1c/crypto/rand/rand_vms.c soc2012/exxo/openssl-1.0.1c/crypto/rand/rand_win.c soc2012/exxo/openssl-1.0.1c/crypto/rand/randfile.c soc2012/exxo/openssl-1.0.1c/crypto/rand/randtest.c soc2012/exxo/openssl-1.0.1c/crypto/rc2/ soc2012/exxo/openssl-1.0.1c/crypto/rc2/Makefile soc2012/exxo/openssl-1.0.1c/crypto/rc2/rc2.h soc2012/exxo/openssl-1.0.1c/crypto/rc2/rc2_cbc.c soc2012/exxo/openssl-1.0.1c/crypto/rc2/rc2_ecb.c soc2012/exxo/openssl-1.0.1c/crypto/rc2/rc2_locl.h soc2012/exxo/openssl-1.0.1c/crypto/rc2/rc2_skey.c soc2012/exxo/openssl-1.0.1c/crypto/rc2/rc2cfb64.c soc2012/exxo/openssl-1.0.1c/crypto/rc2/rc2ofb64.c soc2012/exxo/openssl-1.0.1c/crypto/rc2/rc2speed.c soc2012/exxo/openssl-1.0.1c/crypto/rc2/rc2test.c soc2012/exxo/openssl-1.0.1c/crypto/rc2/rrc2.doc soc2012/exxo/openssl-1.0.1c/crypto/rc2/tab.c soc2012/exxo/openssl-1.0.1c/crypto/rc2/version soc2012/exxo/openssl-1.0.1c/crypto/rc4/ soc2012/exxo/openssl-1.0.1c/crypto/rc4/Makefile soc2012/exxo/openssl-1.0.1c/crypto/rc4/asm/ soc2012/exxo/openssl-1.0.1c/crypto/rc4/asm/rc4-586.pl soc2012/exxo/openssl-1.0.1c/crypto/rc4/asm/rc4-ia64.pl soc2012/exxo/openssl-1.0.1c/crypto/rc4/asm/rc4-md5-x86_64.pl soc2012/exxo/openssl-1.0.1c/crypto/rc4/asm/rc4-parisc.pl soc2012/exxo/openssl-1.0.1c/crypto/rc4/asm/rc4-s390x.pl soc2012/exxo/openssl-1.0.1c/crypto/rc4/asm/rc4-x86_64.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/rc4/rc4.c soc2012/exxo/openssl-1.0.1c/crypto/rc4/rc4.h soc2012/exxo/openssl-1.0.1c/crypto/rc4/rc4_enc.c soc2012/exxo/openssl-1.0.1c/crypto/rc4/rc4_locl.h soc2012/exxo/openssl-1.0.1c/crypto/rc4/rc4_skey.c soc2012/exxo/openssl-1.0.1c/crypto/rc4/rc4_utl.c soc2012/exxo/openssl-1.0.1c/crypto/rc4/rc4s.cpp soc2012/exxo/openssl-1.0.1c/crypto/rc4/rc4speed.c soc2012/exxo/openssl-1.0.1c/crypto/rc4/rc4test.c soc2012/exxo/openssl-1.0.1c/crypto/rc4/rrc4.doc soc2012/exxo/openssl-1.0.1c/crypto/rc5/ soc2012/exxo/openssl-1.0.1c/crypto/rc5/Makefile soc2012/exxo/openssl-1.0.1c/crypto/rc5/asm/ soc2012/exxo/openssl-1.0.1c/crypto/rc5/asm/rc5-586.pl soc2012/exxo/openssl-1.0.1c/crypto/rc5/rc5.h soc2012/exxo/openssl-1.0.1c/crypto/rc5/rc5_ecb.c soc2012/exxo/openssl-1.0.1c/crypto/rc5/rc5_enc.c soc2012/exxo/openssl-1.0.1c/crypto/rc5/rc5_locl.h soc2012/exxo/openssl-1.0.1c/crypto/rc5/rc5_skey.c soc2012/exxo/openssl-1.0.1c/crypto/rc5/rc5cfb64.c soc2012/exxo/openssl-1.0.1c/crypto/rc5/rc5ofb64.c soc2012/exxo/openssl-1.0.1c/crypto/rc5/rc5s.cpp soc2012/exxo/openssl-1.0.1c/crypto/rc5/rc5speed.c soc2012/exxo/openssl-1.0.1c/crypto/rc5/rc5test.c soc2012/exxo/openssl-1.0.1c/crypto/ripemd/ soc2012/exxo/openssl-1.0.1c/crypto/ripemd/Makefile soc2012/exxo/openssl-1.0.1c/crypto/ripemd/README soc2012/exxo/openssl-1.0.1c/crypto/ripemd/asm/ soc2012/exxo/openssl-1.0.1c/crypto/ripemd/asm/rips.cpp soc2012/exxo/openssl-1.0.1c/crypto/ripemd/asm/rmd-586.pl soc2012/exxo/openssl-1.0.1c/crypto/ripemd/ripemd.h soc2012/exxo/openssl-1.0.1c/crypto/ripemd/rmd160.c soc2012/exxo/openssl-1.0.1c/crypto/ripemd/rmd_dgst.c soc2012/exxo/openssl-1.0.1c/crypto/ripemd/rmd_locl.h soc2012/exxo/openssl-1.0.1c/crypto/ripemd/rmd_one.c soc2012/exxo/openssl-1.0.1c/crypto/ripemd/rmdconst.h soc2012/exxo/openssl-1.0.1c/crypto/ripemd/rmdtest.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/ soc2012/exxo/openssl-1.0.1c/crypto/rsa/Makefile soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa.h soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_ameth.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_asn1.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_chk.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_crpt.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_depr.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_eay.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_err.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_gen.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_lib.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_locl.h soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_none.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_null.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_oaep.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_pk1.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_pmeth.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_prn.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_pss.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_saos.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_sign.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_ssl.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_test.c soc2012/exxo/openssl-1.0.1c/crypto/rsa/rsa_x931.c soc2012/exxo/openssl-1.0.1c/crypto/s390xcap.c soc2012/exxo/openssl-1.0.1c/crypto/s390xcpuid.S soc2012/exxo/openssl-1.0.1c/crypto/seed/ soc2012/exxo/openssl-1.0.1c/crypto/seed/Makefile soc2012/exxo/openssl-1.0.1c/crypto/seed/seed.c soc2012/exxo/openssl-1.0.1c/crypto/seed/seed.h soc2012/exxo/openssl-1.0.1c/crypto/seed/seed_cbc.c soc2012/exxo/openssl-1.0.1c/crypto/seed/seed_cfb.c soc2012/exxo/openssl-1.0.1c/crypto/seed/seed_ecb.c soc2012/exxo/openssl-1.0.1c/crypto/seed/seed_locl.h soc2012/exxo/openssl-1.0.1c/crypto/seed/seed_ofb.c soc2012/exxo/openssl-1.0.1c/crypto/sha/ soc2012/exxo/openssl-1.0.1c/crypto/sha/Makefile soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/ soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/README soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha1-586.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha1-alpha.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha1-armv4-large.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha1-ia64.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha1-mips.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha1-parisc.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha1-ppc.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha1-s390x.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha1-sparcv9.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha1-sparcv9a.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha1-thumb.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha1-x86_64.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha256-586.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha256-armv4.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha512-586.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha512-armv4.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha512-ia64.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha512-mips.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha512-parisc.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha512-ppc.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha512-s390x.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha512-sparcv9.pl soc2012/exxo/openssl-1.0.1c/crypto/sha/asm/sha512-x86_64.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/sha/sha.c soc2012/exxo/openssl-1.0.1c/crypto/sha/sha.h soc2012/exxo/openssl-1.0.1c/crypto/sha/sha1.c soc2012/exxo/openssl-1.0.1c/crypto/sha/sha1_one.c soc2012/exxo/openssl-1.0.1c/crypto/sha/sha1dgst.c soc2012/exxo/openssl-1.0.1c/crypto/sha/sha1test.c soc2012/exxo/openssl-1.0.1c/crypto/sha/sha256.c soc2012/exxo/openssl-1.0.1c/crypto/sha/sha256t.c soc2012/exxo/openssl-1.0.1c/crypto/sha/sha512.c soc2012/exxo/openssl-1.0.1c/crypto/sha/sha512t.c soc2012/exxo/openssl-1.0.1c/crypto/sha/sha_dgst.c soc2012/exxo/openssl-1.0.1c/crypto/sha/sha_locl.h soc2012/exxo/openssl-1.0.1c/crypto/sha/sha_one.c soc2012/exxo/openssl-1.0.1c/crypto/sha/shatest.c soc2012/exxo/openssl-1.0.1c/crypto/sparccpuid.S soc2012/exxo/openssl-1.0.1c/crypto/sparcv9cap.c soc2012/exxo/openssl-1.0.1c/crypto/srp/ soc2012/exxo/openssl-1.0.1c/crypto/srp/Makefile soc2012/exxo/openssl-1.0.1c/crypto/srp/srp.h soc2012/exxo/openssl-1.0.1c/crypto/srp/srp_grps.h soc2012/exxo/openssl-1.0.1c/crypto/srp/srp_lcl.h soc2012/exxo/openssl-1.0.1c/crypto/srp/srp_lib.c soc2012/exxo/openssl-1.0.1c/crypto/srp/srp_vfy.c soc2012/exxo/openssl-1.0.1c/crypto/srp/srptest.c soc2012/exxo/openssl-1.0.1c/crypto/stack/ soc2012/exxo/openssl-1.0.1c/crypto/stack/Makefile soc2012/exxo/openssl-1.0.1c/crypto/stack/safestack.h soc2012/exxo/openssl-1.0.1c/crypto/stack/stack.c soc2012/exxo/openssl-1.0.1c/crypto/stack/stack.h soc2012/exxo/openssl-1.0.1c/crypto/store/ soc2012/exxo/openssl-1.0.1c/crypto/store/Makefile soc2012/exxo/openssl-1.0.1c/crypto/store/README soc2012/exxo/openssl-1.0.1c/crypto/store/store.h soc2012/exxo/openssl-1.0.1c/crypto/store/str_err.c soc2012/exxo/openssl-1.0.1c/crypto/store/str_lib.c soc2012/exxo/openssl-1.0.1c/crypto/store/str_locl.h soc2012/exxo/openssl-1.0.1c/crypto/store/str_mem.c soc2012/exxo/openssl-1.0.1c/crypto/store/str_meth.c soc2012/exxo/openssl-1.0.1c/crypto/symhacks.h soc2012/exxo/openssl-1.0.1c/crypto/threads/ soc2012/exxo/openssl-1.0.1c/crypto/threads/README soc2012/exxo/openssl-1.0.1c/crypto/threads/mttest.c soc2012/exxo/openssl-1.0.1c/crypto/threads/netware.bat soc2012/exxo/openssl-1.0.1c/crypto/threads/profile.sh soc2012/exxo/openssl-1.0.1c/crypto/threads/ptest.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/threads/pthread.sh soc2012/exxo/openssl-1.0.1c/crypto/threads/pthread2.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/threads/pthreads-vms.com soc2012/exxo/openssl-1.0.1c/crypto/threads/purify.sh soc2012/exxo/openssl-1.0.1c/crypto/threads/solaris.sh soc2012/exxo/openssl-1.0.1c/crypto/threads/th-lock.c soc2012/exxo/openssl-1.0.1c/crypto/threads/win32.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/ts/ soc2012/exxo/openssl-1.0.1c/crypto/ts/Makefile soc2012/exxo/openssl-1.0.1c/crypto/ts/ts.h soc2012/exxo/openssl-1.0.1c/crypto/ts/ts_asn1.c soc2012/exxo/openssl-1.0.1c/crypto/ts/ts_conf.c soc2012/exxo/openssl-1.0.1c/crypto/ts/ts_err.c soc2012/exxo/openssl-1.0.1c/crypto/ts/ts_lib.c soc2012/exxo/openssl-1.0.1c/crypto/ts/ts_req_print.c soc2012/exxo/openssl-1.0.1c/crypto/ts/ts_req_utils.c soc2012/exxo/openssl-1.0.1c/crypto/ts/ts_rsp_print.c soc2012/exxo/openssl-1.0.1c/crypto/ts/ts_rsp_sign.c soc2012/exxo/openssl-1.0.1c/crypto/ts/ts_rsp_utils.c soc2012/exxo/openssl-1.0.1c/crypto/ts/ts_rsp_verify.c soc2012/exxo/openssl-1.0.1c/crypto/ts/ts_verify_ctx.c soc2012/exxo/openssl-1.0.1c/crypto/txt_db/ soc2012/exxo/openssl-1.0.1c/crypto/txt_db/Makefile soc2012/exxo/openssl-1.0.1c/crypto/txt_db/txt_db.c soc2012/exxo/openssl-1.0.1c/crypto/txt_db/txt_db.h soc2012/exxo/openssl-1.0.1c/crypto/ui/ soc2012/exxo/openssl-1.0.1c/crypto/ui/Makefile soc2012/exxo/openssl-1.0.1c/crypto/ui/ui.h soc2012/exxo/openssl-1.0.1c/crypto/ui/ui_compat.c soc2012/exxo/openssl-1.0.1c/crypto/ui/ui_compat.h soc2012/exxo/openssl-1.0.1c/crypto/ui/ui_err.c soc2012/exxo/openssl-1.0.1c/crypto/ui/ui_lib.c soc2012/exxo/openssl-1.0.1c/crypto/ui/ui_locl.h soc2012/exxo/openssl-1.0.1c/crypto/ui/ui_openssl.c soc2012/exxo/openssl-1.0.1c/crypto/ui/ui_util.c soc2012/exxo/openssl-1.0.1c/crypto/uid.c soc2012/exxo/openssl-1.0.1c/crypto/vms_rms.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/crypto/whrlpool/ soc2012/exxo/openssl-1.0.1c/crypto/whrlpool/Makefile soc2012/exxo/openssl-1.0.1c/crypto/whrlpool/asm/ soc2012/exxo/openssl-1.0.1c/crypto/whrlpool/asm/wp-mmx.pl soc2012/exxo/openssl-1.0.1c/crypto/whrlpool/asm/wp-x86_64.pl soc2012/exxo/openssl-1.0.1c/crypto/whrlpool/whrlpool.h soc2012/exxo/openssl-1.0.1c/crypto/whrlpool/wp_block.c soc2012/exxo/openssl-1.0.1c/crypto/whrlpool/wp_dgst.c soc2012/exxo/openssl-1.0.1c/crypto/whrlpool/wp_locl.h soc2012/exxo/openssl-1.0.1c/crypto/whrlpool/wp_test.c soc2012/exxo/openssl-1.0.1c/crypto/x509/ soc2012/exxo/openssl-1.0.1c/crypto/x509/Makefile soc2012/exxo/openssl-1.0.1c/crypto/x509/by_dir.c soc2012/exxo/openssl-1.0.1c/crypto/x509/by_file.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509.h soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_att.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_cmp.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_d2.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_def.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_err.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_ext.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_lu.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_obj.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_r2x.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_req.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_set.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_trs.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_txt.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_v3.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_vfy.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_vfy.h soc2012/exxo/openssl-1.0.1c/crypto/x509/x509_vpm.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509cset.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509name.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509rset.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509spki.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x509type.c soc2012/exxo/openssl-1.0.1c/crypto/x509/x_all.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/ soc2012/exxo/openssl-1.0.1c/crypto/x509v3/Makefile soc2012/exxo/openssl-1.0.1c/crypto/x509v3/ext_dat.h soc2012/exxo/openssl-1.0.1c/crypto/x509v3/pcy_cache.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/pcy_data.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/pcy_int.h soc2012/exxo/openssl-1.0.1c/crypto/x509v3/pcy_lib.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/pcy_map.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/pcy_node.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/pcy_tree.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/tabtest.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_addr.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_akey.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_akeya.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_alt.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_asid.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_bcons.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_bitst.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_conf.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_cpols.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_crld.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_enum.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_extku.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_genn.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_ia5.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_info.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_int.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_lib.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_ncons.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_ocsp.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_pci.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_pcia.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_pcons.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_pku.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_pmaps.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_prn.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_purp.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_skey.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_sxnet.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3_utl.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3conf.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3err.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/v3prin.c soc2012/exxo/openssl-1.0.1c/crypto/x509v3/x509v3.h soc2012/exxo/openssl-1.0.1c/crypto/x86_64cpuid.pl soc2012/exxo/openssl-1.0.1c/crypto/x86cpuid.pl soc2012/exxo/openssl-1.0.1c/demos/ soc2012/exxo/openssl-1.0.1c/demos/README soc2012/exxo/openssl-1.0.1c/demos/asn1/ soc2012/exxo/openssl-1.0.1c/demos/asn1/README.ASN1 soc2012/exxo/openssl-1.0.1c/demos/asn1/ocsp.c soc2012/exxo/openssl-1.0.1c/demos/b64.c soc2012/exxo/openssl-1.0.1c/demos/b64.pl soc2012/exxo/openssl-1.0.1c/demos/bio/ soc2012/exxo/openssl-1.0.1c/demos/bio/Makefile soc2012/exxo/openssl-1.0.1c/demos/bio/README soc2012/exxo/openssl-1.0.1c/demos/bio/saccept.c soc2012/exxo/openssl-1.0.1c/demos/bio/sconnect.c soc2012/exxo/openssl-1.0.1c/demos/bio/server.pem soc2012/exxo/openssl-1.0.1c/demos/cms/ soc2012/exxo/openssl-1.0.1c/demos/cms/cacert.pem soc2012/exxo/openssl-1.0.1c/demos/cms/cakey.pem soc2012/exxo/openssl-1.0.1c/demos/cms/cms_comp.c soc2012/exxo/openssl-1.0.1c/demos/cms/cms_ddec.c soc2012/exxo/openssl-1.0.1c/demos/cms/cms_dec.c soc2012/exxo/openssl-1.0.1c/demos/cms/cms_denc.c soc2012/exxo/openssl-1.0.1c/demos/cms/cms_enc.c soc2012/exxo/openssl-1.0.1c/demos/cms/cms_sign.c soc2012/exxo/openssl-1.0.1c/demos/cms/cms_sign2.c soc2012/exxo/openssl-1.0.1c/demos/cms/cms_uncomp.c soc2012/exxo/openssl-1.0.1c/demos/cms/cms_ver.c soc2012/exxo/openssl-1.0.1c/demos/cms/comp.txt soc2012/exxo/openssl-1.0.1c/demos/cms/encr.txt soc2012/exxo/openssl-1.0.1c/demos/cms/sign.txt soc2012/exxo/openssl-1.0.1c/demos/cms/signer.pem soc2012/exxo/openssl-1.0.1c/demos/cms/signer2.pem soc2012/exxo/openssl-1.0.1c/demos/easy_tls/ soc2012/exxo/openssl-1.0.1c/demos/easy_tls/Makefile soc2012/exxo/openssl-1.0.1c/demos/easy_tls/README soc2012/exxo/openssl-1.0.1c/demos/easy_tls/cacerts.pem soc2012/exxo/openssl-1.0.1c/demos/easy_tls/cert.pem soc2012/exxo/openssl-1.0.1c/demos/easy_tls/easy-tls.c soc2012/exxo/openssl-1.0.1c/demos/easy_tls/easy-tls.h soc2012/exxo/openssl-1.0.1c/demos/easy_tls/test.c soc2012/exxo/openssl-1.0.1c/demos/easy_tls/test.h soc2012/exxo/openssl-1.0.1c/demos/eay/ soc2012/exxo/openssl-1.0.1c/demos/eay/Makefile soc2012/exxo/openssl-1.0.1c/demos/eay/base64.c soc2012/exxo/openssl-1.0.1c/demos/eay/conn.c soc2012/exxo/openssl-1.0.1c/demos/eay/loadrsa.c soc2012/exxo/openssl-1.0.1c/demos/engines/ soc2012/exxo/openssl-1.0.1c/demos/engines/cluster_labs/ soc2012/exxo/openssl-1.0.1c/demos/engines/cluster_labs/Makefile soc2012/exxo/openssl-1.0.1c/demos/engines/cluster_labs/cluster_labs.h soc2012/exxo/openssl-1.0.1c/demos/engines/cluster_labs/hw_cluster_labs.c soc2012/exxo/openssl-1.0.1c/demos/engines/cluster_labs/hw_cluster_labs.ec soc2012/exxo/openssl-1.0.1c/demos/engines/cluster_labs/hw_cluster_labs_err.c soc2012/exxo/openssl-1.0.1c/demos/engines/cluster_labs/hw_cluster_labs_err.h soc2012/exxo/openssl-1.0.1c/demos/engines/ibmca/ soc2012/exxo/openssl-1.0.1c/demos/engines/ibmca/Makefile soc2012/exxo/openssl-1.0.1c/demos/engines/ibmca/hw_ibmca.c soc2012/exxo/openssl-1.0.1c/demos/engines/ibmca/hw_ibmca.ec soc2012/exxo/openssl-1.0.1c/demos/engines/ibmca/hw_ibmca_err.c soc2012/exxo/openssl-1.0.1c/demos/engines/ibmca/hw_ibmca_err.h soc2012/exxo/openssl-1.0.1c/demos/engines/ibmca/ica_openssl_api.h soc2012/exxo/openssl-1.0.1c/demos/engines/rsaref/ soc2012/exxo/openssl-1.0.1c/demos/engines/rsaref/Makefile soc2012/exxo/openssl-1.0.1c/demos/engines/rsaref/README soc2012/exxo/openssl-1.0.1c/demos/engines/rsaref/build.com soc2012/exxo/openssl-1.0.1c/demos/engines/rsaref/rsaref.c soc2012/exxo/openssl-1.0.1c/demos/engines/rsaref/rsaref.ec soc2012/exxo/openssl-1.0.1c/demos/engines/rsaref/rsaref_err.c soc2012/exxo/openssl-1.0.1c/demos/engines/rsaref/rsaref_err.h soc2012/exxo/openssl-1.0.1c/demos/engines/zencod/ soc2012/exxo/openssl-1.0.1c/demos/engines/zencod/Makefile soc2012/exxo/openssl-1.0.1c/demos/engines/zencod/hw_zencod.c soc2012/exxo/openssl-1.0.1c/demos/engines/zencod/hw_zencod.ec soc2012/exxo/openssl-1.0.1c/demos/engines/zencod/hw_zencod.h soc2012/exxo/openssl-1.0.1c/demos/engines/zencod/hw_zencod_err.c soc2012/exxo/openssl-1.0.1c/demos/engines/zencod/hw_zencod_err.h soc2012/exxo/openssl-1.0.1c/demos/maurice/ soc2012/exxo/openssl-1.0.1c/demos/maurice/Makefile soc2012/exxo/openssl-1.0.1c/demos/maurice/README soc2012/exxo/openssl-1.0.1c/demos/maurice/cert.pem soc2012/exxo/openssl-1.0.1c/demos/maurice/example1.c soc2012/exxo/openssl-1.0.1c/demos/maurice/example2.c soc2012/exxo/openssl-1.0.1c/demos/maurice/example3.c soc2012/exxo/openssl-1.0.1c/demos/maurice/example4.c soc2012/exxo/openssl-1.0.1c/demos/maurice/loadkeys.c soc2012/exxo/openssl-1.0.1c/demos/maurice/loadkeys.h soc2012/exxo/openssl-1.0.1c/demos/maurice/privkey.pem soc2012/exxo/openssl-1.0.1c/demos/pkcs12/ soc2012/exxo/openssl-1.0.1c/demos/pkcs12/README soc2012/exxo/openssl-1.0.1c/demos/pkcs12/pkread.c soc2012/exxo/openssl-1.0.1c/demos/pkcs12/pkwrite.c soc2012/exxo/openssl-1.0.1c/demos/prime/ soc2012/exxo/openssl-1.0.1c/demos/prime/Makefile soc2012/exxo/openssl-1.0.1c/demos/prime/prime.c soc2012/exxo/openssl-1.0.1c/demos/privkey.pem soc2012/exxo/openssl-1.0.1c/demos/selfsign.c soc2012/exxo/openssl-1.0.1c/demos/sign/ soc2012/exxo/openssl-1.0.1c/demos/sign/Makefile soc2012/exxo/openssl-1.0.1c/demos/sign/cert.pem soc2012/exxo/openssl-1.0.1c/demos/sign/key.pem soc2012/exxo/openssl-1.0.1c/demos/sign/sig.txt soc2012/exxo/openssl-1.0.1c/demos/sign/sign.c soc2012/exxo/openssl-1.0.1c/demos/sign/sign.txt soc2012/exxo/openssl-1.0.1c/demos/smime/ soc2012/exxo/openssl-1.0.1c/demos/smime/cacert.pem soc2012/exxo/openssl-1.0.1c/demos/smime/cakey.pem soc2012/exxo/openssl-1.0.1c/demos/smime/encr.txt soc2012/exxo/openssl-1.0.1c/demos/smime/sign.txt soc2012/exxo/openssl-1.0.1c/demos/smime/signer.pem soc2012/exxo/openssl-1.0.1c/demos/smime/signer2.pem soc2012/exxo/openssl-1.0.1c/demos/smime/smdec.c soc2012/exxo/openssl-1.0.1c/demos/smime/smenc.c soc2012/exxo/openssl-1.0.1c/demos/smime/smsign.c soc2012/exxo/openssl-1.0.1c/demos/smime/smsign2.c soc2012/exxo/openssl-1.0.1c/demos/smime/smver.c soc2012/exxo/openssl-1.0.1c/demos/spkigen.c soc2012/exxo/openssl-1.0.1c/demos/ssl/ soc2012/exxo/openssl-1.0.1c/demos/ssl/cli.cpp soc2012/exxo/openssl-1.0.1c/demos/ssl/inetdsrv.cpp soc2012/exxo/openssl-1.0.1c/demos/ssl/serv.cpp soc2012/exxo/openssl-1.0.1c/demos/ssltest-ecc/ soc2012/exxo/openssl-1.0.1c/demos/ssltest-ecc/ECC-RSAcertgen.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/demos/ssltest-ecc/ECCcertgen.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/demos/ssltest-ecc/README soc2012/exxo/openssl-1.0.1c/demos/ssltest-ecc/RSAcertgen.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/demos/ssltest-ecc/ssltest.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/demos/state_machine/ soc2012/exxo/openssl-1.0.1c/demos/state_machine/Makefile soc2012/exxo/openssl-1.0.1c/demos/state_machine/state_machine.c soc2012/exxo/openssl-1.0.1c/demos/tunala/ soc2012/exxo/openssl-1.0.1c/demos/tunala/A-client.pem soc2012/exxo/openssl-1.0.1c/demos/tunala/A-server.pem soc2012/exxo/openssl-1.0.1c/demos/tunala/CA.pem soc2012/exxo/openssl-1.0.1c/demos/tunala/INSTALL soc2012/exxo/openssl-1.0.1c/demos/tunala/Makefile soc2012/exxo/openssl-1.0.1c/demos/tunala/Makefile.am soc2012/exxo/openssl-1.0.1c/demos/tunala/README soc2012/exxo/openssl-1.0.1c/demos/tunala/autogunk.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/demos/tunala/autoungunk.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/demos/tunala/breakage.c soc2012/exxo/openssl-1.0.1c/demos/tunala/buffer.c soc2012/exxo/openssl-1.0.1c/demos/tunala/cb.c soc2012/exxo/openssl-1.0.1c/demos/tunala/configure.in soc2012/exxo/openssl-1.0.1c/demos/tunala/ip.c soc2012/exxo/openssl-1.0.1c/demos/tunala/sm.c soc2012/exxo/openssl-1.0.1c/demos/tunala/test.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/demos/tunala/tunala.c soc2012/exxo/openssl-1.0.1c/demos/tunala/tunala.h soc2012/exxo/openssl-1.0.1c/demos/x509/ soc2012/exxo/openssl-1.0.1c/demos/x509/README soc2012/exxo/openssl-1.0.1c/demos/x509/mkcert.c soc2012/exxo/openssl-1.0.1c/demos/x509/mkreq.c soc2012/exxo/openssl-1.0.1c/doc/ soc2012/exxo/openssl-1.0.1c/doc/HOWTO/ soc2012/exxo/openssl-1.0.1c/doc/HOWTO/certificates.txt soc2012/exxo/openssl-1.0.1c/doc/HOWTO/keys.txt soc2012/exxo/openssl-1.0.1c/doc/HOWTO/proxy_certificates.txt soc2012/exxo/openssl-1.0.1c/doc/README soc2012/exxo/openssl-1.0.1c/doc/apps/ soc2012/exxo/openssl-1.0.1c/doc/apps/CA.pl.pod soc2012/exxo/openssl-1.0.1c/doc/apps/asn1parse.pod soc2012/exxo/openssl-1.0.1c/doc/apps/ca.pod soc2012/exxo/openssl-1.0.1c/doc/apps/ciphers.pod soc2012/exxo/openssl-1.0.1c/doc/apps/cms.pod soc2012/exxo/openssl-1.0.1c/doc/apps/config.pod soc2012/exxo/openssl-1.0.1c/doc/apps/crl.pod soc2012/exxo/openssl-1.0.1c/doc/apps/crl2pkcs7.pod soc2012/exxo/openssl-1.0.1c/doc/apps/dgst.pod soc2012/exxo/openssl-1.0.1c/doc/apps/dhparam.pod soc2012/exxo/openssl-1.0.1c/doc/apps/dsa.pod soc2012/exxo/openssl-1.0.1c/doc/apps/dsaparam.pod soc2012/exxo/openssl-1.0.1c/doc/apps/ec.pod soc2012/exxo/openssl-1.0.1c/doc/apps/ecparam.pod soc2012/exxo/openssl-1.0.1c/doc/apps/enc.pod soc2012/exxo/openssl-1.0.1c/doc/apps/errstr.pod soc2012/exxo/openssl-1.0.1c/doc/apps/gendsa.pod soc2012/exxo/openssl-1.0.1c/doc/apps/genpkey.pod soc2012/exxo/openssl-1.0.1c/doc/apps/genrsa.pod soc2012/exxo/openssl-1.0.1c/doc/apps/nseq.pod soc2012/exxo/openssl-1.0.1c/doc/apps/ocsp.pod soc2012/exxo/openssl-1.0.1c/doc/apps/openssl.pod soc2012/exxo/openssl-1.0.1c/doc/apps/passwd.pod soc2012/exxo/openssl-1.0.1c/doc/apps/pkcs12.pod soc2012/exxo/openssl-1.0.1c/doc/apps/pkcs7.pod soc2012/exxo/openssl-1.0.1c/doc/apps/pkcs8.pod soc2012/exxo/openssl-1.0.1c/doc/apps/pkey.pod soc2012/exxo/openssl-1.0.1c/doc/apps/pkeyparam.pod soc2012/exxo/openssl-1.0.1c/doc/apps/pkeyutl.pod soc2012/exxo/openssl-1.0.1c/doc/apps/rand.pod soc2012/exxo/openssl-1.0.1c/doc/apps/req.pod soc2012/exxo/openssl-1.0.1c/doc/apps/rsa.pod soc2012/exxo/openssl-1.0.1c/doc/apps/rsautl.pod soc2012/exxo/openssl-1.0.1c/doc/apps/s_client.pod soc2012/exxo/openssl-1.0.1c/doc/apps/s_server.pod soc2012/exxo/openssl-1.0.1c/doc/apps/s_time.pod soc2012/exxo/openssl-1.0.1c/doc/apps/sess_id.pod soc2012/exxo/openssl-1.0.1c/doc/apps/smime.pod soc2012/exxo/openssl-1.0.1c/doc/apps/speed.pod soc2012/exxo/openssl-1.0.1c/doc/apps/spkac.pod soc2012/exxo/openssl-1.0.1c/doc/apps/ts.pod soc2012/exxo/openssl-1.0.1c/doc/apps/tsget.pod soc2012/exxo/openssl-1.0.1c/doc/apps/verify.pod soc2012/exxo/openssl-1.0.1c/doc/apps/version.pod soc2012/exxo/openssl-1.0.1c/doc/apps/x509.pod soc2012/exxo/openssl-1.0.1c/doc/apps/x509v3_config.pod soc2012/exxo/openssl-1.0.1c/doc/c-indentation.el soc2012/exxo/openssl-1.0.1c/doc/crypto/ soc2012/exxo/openssl-1.0.1c/doc/crypto/ASN1_OBJECT_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ASN1_STRING_length.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ASN1_STRING_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ASN1_STRING_print_ex.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ASN1_generate_nconf.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_ctrl.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_f_base64.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_f_buffer.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_f_cipher.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_f_md.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_f_null.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_f_ssl.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_find_type.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_new_CMS.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_push.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_read.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_s_accept.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_s_bio.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_s_connect.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_s_fd.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_s_file.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_s_mem.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_s_null.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_s_socket.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_set_callback.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BIO_should_retry.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_BLINDING_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_CTX_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_CTX_start.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_add.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_add_word.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_bn2bin.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_cmp.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_copy.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_generate_prime.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_mod_inverse.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_mod_mul_montgomery.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_mod_mul_reciprocal.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_num_bytes.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_rand.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_set_bit.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_swap.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/BN_zero.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_add0_cert.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_add1_recipient_cert.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_compress.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_decrypt.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_encrypt.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_final.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_get0_RecipientInfos.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_get0_SignerInfos.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_get0_type.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_get1_ReceiptRequest.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_sign.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_sign_add1_signer.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_sign_receipt.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_uncompress.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_verify.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CMS_verify_receipt.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CONF_modules_free.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CONF_modules_load_file.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/CRYPTO_set_ex_data.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DH_generate_key.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DH_generate_parameters.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DH_get_ex_new_index.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DH_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DH_set_method.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DH_size.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DSA_SIG_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DSA_do_sign.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DSA_dup_DH.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DSA_generate_key.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DSA_generate_parameters.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DSA_get_ex_new_index.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DSA_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DSA_set_method.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DSA_sign.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/DSA_size.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ERR_GET_LIB.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ERR_clear_error.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ERR_error_string.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ERR_get_error.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ERR_load_crypto_strings.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ERR_load_strings.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ERR_print_errors.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ERR_put_error.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ERR_remove_state.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ERR_set_mark.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_BytesToKey.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_DigestInit.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_DigestSignInit.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_DigestVerifyInit.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_EncryptInit.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_OpenInit.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_CTX_ctrl.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_CTX_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_cmp.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_decrypt.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_derive.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_encrypt.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_get_default_digest.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_keygen.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_print_private.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_set1_RSA.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_sign.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_verify.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_PKEY_verifyrecover.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_SealInit.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_SignInit.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/EVP_VerifyInit.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/OBJ_nid2obj.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/OPENSSL_Applink.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/OPENSSL_VERSION_NUMBER.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/OPENSSL_config.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/OPENSSL_ia32cap.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/OPENSSL_load_builtin_modules.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/OpenSSL_add_all_algorithms.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/PEM_write_bio_CMS_stream.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/PEM_write_bio_PKCS7_stream.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/PKCS12_create.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/PKCS12_parse.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/PKCS7_decrypt.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/PKCS7_encrypt.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/PKCS7_sign.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/PKCS7_sign_add_signer.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/PKCS7_verify.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RAND_add.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RAND_bytes.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RAND_cleanup.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RAND_egd.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RAND_load_file.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RAND_set_rand_method.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RSA_blinding_on.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RSA_check_key.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RSA_generate_key.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RSA_get_ex_new_index.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RSA_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RSA_padding_add_PKCS1_type_1.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RSA_print.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RSA_private_encrypt.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RSA_public_encrypt.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RSA_set_method.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RSA_sign.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/RSA_size.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/SMIME_read_CMS.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/SMIME_read_PKCS7.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/SMIME_write_CMS.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/SMIME_write_PKCS7.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/X509_NAME_ENTRY_get_object.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/X509_NAME_add_entry_by_txt.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/X509_NAME_get_index_by_NID.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/X509_NAME_print_ex.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/X509_STORE_CTX_get_error.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/X509_STORE_CTX_get_ex_new_index.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/X509_STORE_CTX_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/X509_STORE_CTX_set_verify_cb.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/X509_STORE_set_verify_cb_func.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/X509_VERIFY_PARAM_set_flags.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/X509_new.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/X509_verify_cert.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/bio.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/blowfish.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/bn.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/bn_internal.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/buffer.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/crypto.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/d2i_ASN1_OBJECT.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/d2i_DHparams.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/d2i_DSAPublicKey.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/d2i_PKCS8PrivateKey.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/d2i_RSAPublicKey.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/d2i_X509.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/d2i_X509_ALGOR.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/d2i_X509_CRL.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/d2i_X509_NAME.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/d2i_X509_REQ.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/d2i_X509_SIG.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/des.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/des_modes.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/dh.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/dsa.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ecdsa.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/engine.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/err.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/evp.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/hmac.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/i2d_CMS_bio_stream.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/i2d_PKCS7_bio_stream.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/lh_stats.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/lhash.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/md5.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/mdc2.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/pem.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/rand.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/rc4.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ripemd.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/rsa.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/sha.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/threads.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ui.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/ui_compat.pod soc2012/exxo/openssl-1.0.1c/doc/crypto/x509.pod soc2012/exxo/openssl-1.0.1c/doc/fingerprints.txt soc2012/exxo/openssl-1.0.1c/doc/openssl-shared.txt soc2012/exxo/openssl-1.0.1c/doc/openssl.txt soc2012/exxo/openssl-1.0.1c/doc/openssl_button.gif (contents, props changed) soc2012/exxo/openssl-1.0.1c/doc/openssl_button.html soc2012/exxo/openssl-1.0.1c/doc/ssl/ soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CIPHER_get_name.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_COMP_add_compression_method.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_add_extra_chain_cert.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_add_session.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_ctrl.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_flush_sessions.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_free.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_get_ex_new_index.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_get_verify_mode.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_load_verify_locations.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_new.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_sess_number.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_sess_set_cache_size.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_sess_set_get_cb.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_sessions.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_cert_store.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_cert_verify_callback.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_cipher_list.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_client_CA_list.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_client_cert_cb.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_default_passwd_cb.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_generate_session_id.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_info_callback.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_max_cert_list.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_mode.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_msg_callback.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_options.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_psk_client_callback.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_quiet_shutdown.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_session_cache_mode.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_session_id_context.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_ssl_version.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_timeout.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_tmp_dh_callback.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_tmp_rsa_callback.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_set_verify.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_use_certificate.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_CTX_use_psk_identity_hint.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_SESSION_free.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_SESSION_get_ex_new_index.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_SESSION_get_time.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_accept.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_alert_type_string.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_clear.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_connect.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_do_handshake.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_free.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_SSL_CTX.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_ciphers.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_client_CA_list.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_current_cipher.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_default_timeout.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_error.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_ex_new_index.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_fd.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_peer_cert_chain.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_peer_certificate.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_psk_identity.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_rbio.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_session.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_verify_result.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_get_version.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_library_init.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_load_client_CA_file.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_new.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_pending.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_read.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_rstate_string.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_session_reused.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_set_bio.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_set_connect_state.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_set_fd.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_set_session.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_set_shutdown.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_set_verify_result.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_shutdown.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_state_string.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_want.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/SSL_write.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/d2i_SSL_SESSION.pod soc2012/exxo/openssl-1.0.1c/doc/ssl/ssl.pod soc2012/exxo/openssl-1.0.1c/doc/ssleay.txt soc2012/exxo/openssl-1.0.1c/doc/standards.txt soc2012/exxo/openssl-1.0.1c/e_os.h soc2012/exxo/openssl-1.0.1c/e_os2.h soc2012/exxo/openssl-1.0.1c/engines/ soc2012/exxo/openssl-1.0.1c/engines/Makefile soc2012/exxo/openssl-1.0.1c/engines/alpha.opt soc2012/exxo/openssl-1.0.1c/engines/axp.opt soc2012/exxo/openssl-1.0.1c/engines/capierr.bat soc2012/exxo/openssl-1.0.1c/engines/ccgost/ soc2012/exxo/openssl-1.0.1c/engines/ccgost/Makefile soc2012/exxo/openssl-1.0.1c/engines/ccgost/README.gost soc2012/exxo/openssl-1.0.1c/engines/ccgost/e_gost_err.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/e_gost_err.h soc2012/exxo/openssl-1.0.1c/engines/ccgost/e_gost_err.proto soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost.ec soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost2001.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost2001_keyx.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost2001_keyx.h soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost89.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost89.h soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost94_keyx.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost_ameth.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost_asn1.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost_crypt.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost_ctl.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost_eng.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost_keywrap.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost_keywrap.h soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost_lcl.h soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost_md.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost_params.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost_params.h soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost_pmeth.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gost_sign.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gosthash.c soc2012/exxo/openssl-1.0.1c/engines/ccgost/gosthash.h soc2012/exxo/openssl-1.0.1c/engines/ccgost/gostsum.c soc2012/exxo/openssl-1.0.1c/engines/e_4758cca.c soc2012/exxo/openssl-1.0.1c/engines/e_4758cca.ec soc2012/exxo/openssl-1.0.1c/engines/e_4758cca_err.c soc2012/exxo/openssl-1.0.1c/engines/e_4758cca_err.h soc2012/exxo/openssl-1.0.1c/engines/e_aep.c soc2012/exxo/openssl-1.0.1c/engines/e_aep.ec soc2012/exxo/openssl-1.0.1c/engines/e_aep_err.c soc2012/exxo/openssl-1.0.1c/engines/e_aep_err.h soc2012/exxo/openssl-1.0.1c/engines/e_atalla.c soc2012/exxo/openssl-1.0.1c/engines/e_atalla.ec soc2012/exxo/openssl-1.0.1c/engines/e_atalla_err.c soc2012/exxo/openssl-1.0.1c/engines/e_atalla_err.h soc2012/exxo/openssl-1.0.1c/engines/e_capi.c soc2012/exxo/openssl-1.0.1c/engines/e_capi.ec soc2012/exxo/openssl-1.0.1c/engines/e_capi_err.c soc2012/exxo/openssl-1.0.1c/engines/e_capi_err.h soc2012/exxo/openssl-1.0.1c/engines/e_chil.c soc2012/exxo/openssl-1.0.1c/engines/e_chil.ec soc2012/exxo/openssl-1.0.1c/engines/e_chil_err.c soc2012/exxo/openssl-1.0.1c/engines/e_chil_err.h soc2012/exxo/openssl-1.0.1c/engines/e_cswift.c soc2012/exxo/openssl-1.0.1c/engines/e_cswift.ec soc2012/exxo/openssl-1.0.1c/engines/e_cswift_err.c soc2012/exxo/openssl-1.0.1c/engines/e_cswift_err.h soc2012/exxo/openssl-1.0.1c/engines/e_gmp.c soc2012/exxo/openssl-1.0.1c/engines/e_gmp.ec soc2012/exxo/openssl-1.0.1c/engines/e_gmp_err.c soc2012/exxo/openssl-1.0.1c/engines/e_gmp_err.h soc2012/exxo/openssl-1.0.1c/engines/e_nuron.c soc2012/exxo/openssl-1.0.1c/engines/e_nuron.ec soc2012/exxo/openssl-1.0.1c/engines/e_nuron_err.c soc2012/exxo/openssl-1.0.1c/engines/e_nuron_err.h soc2012/exxo/openssl-1.0.1c/engines/e_padlock.c soc2012/exxo/openssl-1.0.1c/engines/e_padlock.ec soc2012/exxo/openssl-1.0.1c/engines/e_sureware.c soc2012/exxo/openssl-1.0.1c/engines/e_sureware.ec soc2012/exxo/openssl-1.0.1c/engines/e_sureware_err.c soc2012/exxo/openssl-1.0.1c/engines/e_sureware_err.h soc2012/exxo/openssl-1.0.1c/engines/e_ubsec.c soc2012/exxo/openssl-1.0.1c/engines/e_ubsec.ec soc2012/exxo/openssl-1.0.1c/engines/e_ubsec_err.c soc2012/exxo/openssl-1.0.1c/engines/e_ubsec_err.h soc2012/exxo/openssl-1.0.1c/engines/engine_vector.mar soc2012/exxo/openssl-1.0.1c/engines/ia64.opt soc2012/exxo/openssl-1.0.1c/engines/makeengines.com soc2012/exxo/openssl-1.0.1c/engines/vax.opt soc2012/exxo/openssl-1.0.1c/engines/vendor_defns/ soc2012/exxo/openssl-1.0.1c/engines/vendor_defns/aep.h soc2012/exxo/openssl-1.0.1c/engines/vendor_defns/atalla.h soc2012/exxo/openssl-1.0.1c/engines/vendor_defns/cswift.h soc2012/exxo/openssl-1.0.1c/engines/vendor_defns/hw_4758_cca.h soc2012/exxo/openssl-1.0.1c/engines/vendor_defns/hw_ubsec.h soc2012/exxo/openssl-1.0.1c/engines/vendor_defns/hwcryptohook.h soc2012/exxo/openssl-1.0.1c/engines/vendor_defns/sureware.h soc2012/exxo/openssl-1.0.1c/include/ soc2012/exxo/openssl-1.0.1c/include/openssl/ soc2012/exxo/openssl-1.0.1c/include/openssl/aes.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/asn1.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/asn1_mac.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/asn1t.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/bio.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/blowfish.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/bn.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/buffer.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/camellia.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/cast.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/cmac.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/cms.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/comp.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/conf.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/conf_api.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/crypto.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/des.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/des_old.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/dh.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/dsa.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/dso.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/dtls1.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/e_os2.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ebcdic.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ec.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ecdh.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ecdsa.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/engine.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/err.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/evp.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/hmac.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/idea.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/krb5_asn.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/kssl.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/lhash.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/md4.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/md5.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/mdc2.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/modes.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/obj_mac.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/objects.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ocsp.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/opensslconf.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/opensslv.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ossl_typ.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/pem.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/pem2.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/pkcs12.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/pkcs7.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/pqueue.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/rand.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/rc2.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/rc4.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ripemd.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/rsa.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/safestack.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/seed.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/sha.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/srp.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/srtp.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ssl.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ssl2.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ssl23.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ssl3.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/stack.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/symhacks.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/tls1.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ts.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/txt_db.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ui.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/ui_compat.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/whrlpool.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/x509.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/x509_vfy.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/include/openssl/x509v3.h (contents, props changed) soc2012/exxo/openssl-1.0.1c/install.com soc2012/exxo/openssl-1.0.1c/makevms.com (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/ soc2012/exxo/openssl-1.0.1c/ms/.rnd (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/32all.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/README soc2012/exxo/openssl-1.0.1c/ms/applink.c soc2012/exxo/openssl-1.0.1c/ms/bcb4.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/certCA.srl soc2012/exxo/openssl-1.0.1c/ms/certCA.ss soc2012/exxo/openssl-1.0.1c/ms/certU.ss soc2012/exxo/openssl-1.0.1c/ms/cmp.pl soc2012/exxo/openssl-1.0.1c/ms/do_ms.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/do_nasm.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/do_nt.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/do_win64a.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/do_win64i.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/keyCA.ss soc2012/exxo/openssl-1.0.1c/ms/keyU.ss soc2012/exxo/openssl-1.0.1c/ms/mingw32.bat soc2012/exxo/openssl-1.0.1c/ms/mw.bat soc2012/exxo/openssl-1.0.1c/ms/req2CA.ss soc2012/exxo/openssl-1.0.1c/ms/reqCA.ss soc2012/exxo/openssl-1.0.1c/ms/reqU.ss soc2012/exxo/openssl-1.0.1c/ms/speed32.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/tenc.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/tencce.bat soc2012/exxo/openssl-1.0.1c/ms/test.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/testce.bat soc2012/exxo/openssl-1.0.1c/ms/testce2.bat soc2012/exxo/openssl-1.0.1c/ms/testenc.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/testencce.bat soc2012/exxo/openssl-1.0.1c/ms/testpem.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/testpemce.bat soc2012/exxo/openssl-1.0.1c/ms/testss.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/testssce.bat soc2012/exxo/openssl-1.0.1c/ms/tlhelp32.h soc2012/exxo/openssl-1.0.1c/ms/tpem.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/tpemce.bat soc2012/exxo/openssl-1.0.1c/ms/uplink-common.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/uplink-ia64.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/uplink-x86.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/uplink-x86_64.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/uplink.c soc2012/exxo/openssl-1.0.1c/ms/uplink.h soc2012/exxo/openssl-1.0.1c/ms/uplink.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/ms/x86asm.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/openssl.doxy soc2012/exxo/openssl-1.0.1c/openssl.spec soc2012/exxo/openssl-1.0.1c/os2/ soc2012/exxo/openssl-1.0.1c/os2/OS2-EMX.cmd soc2012/exxo/openssl-1.0.1c/os2/backwardify.pl soc2012/exxo/openssl-1.0.1c/perl/ soc2012/exxo/openssl-1.0.1c/shlib/ soc2012/exxo/openssl-1.0.1c/shlib/Makefile.hpux10-cc soc2012/exxo/openssl-1.0.1c/shlib/README soc2012/exxo/openssl-1.0.1c/shlib/hpux10-cc.sh soc2012/exxo/openssl-1.0.1c/shlib/irix.sh soc2012/exxo/openssl-1.0.1c/shlib/sco5-shared-gcc.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/shlib/sco5-shared-installed (contents, props changed) soc2012/exxo/openssl-1.0.1c/shlib/sco5-shared.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/shlib/solaris-sc4.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/shlib/solaris.sh soc2012/exxo/openssl-1.0.1c/shlib/sun.sh soc2012/exxo/openssl-1.0.1c/shlib/svr5-shared-gcc.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/shlib/svr5-shared-installed (contents, props changed) soc2012/exxo/openssl-1.0.1c/shlib/svr5-shared.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/shlib/win32.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/shlib/win32dll.bat (contents, props changed) soc2012/exxo/openssl-1.0.1c/ssl/ soc2012/exxo/openssl-1.0.1c/ssl/Makefile soc2012/exxo/openssl-1.0.1c/ssl/bio_ssl.c soc2012/exxo/openssl-1.0.1c/ssl/d1_both.c soc2012/exxo/openssl-1.0.1c/ssl/d1_clnt.c soc2012/exxo/openssl-1.0.1c/ssl/d1_enc.c soc2012/exxo/openssl-1.0.1c/ssl/d1_lib.c soc2012/exxo/openssl-1.0.1c/ssl/d1_meth.c soc2012/exxo/openssl-1.0.1c/ssl/d1_pkt.c soc2012/exxo/openssl-1.0.1c/ssl/d1_srtp.c soc2012/exxo/openssl-1.0.1c/ssl/d1_srvr.c soc2012/exxo/openssl-1.0.1c/ssl/dtls1.h soc2012/exxo/openssl-1.0.1c/ssl/install-ssl.com (contents, props changed) soc2012/exxo/openssl-1.0.1c/ssl/kssl.c soc2012/exxo/openssl-1.0.1c/ssl/kssl.h soc2012/exxo/openssl-1.0.1c/ssl/kssl_lcl.h soc2012/exxo/openssl-1.0.1c/ssl/s23_clnt.c soc2012/exxo/openssl-1.0.1c/ssl/s23_lib.c soc2012/exxo/openssl-1.0.1c/ssl/s23_meth.c soc2012/exxo/openssl-1.0.1c/ssl/s23_pkt.c soc2012/exxo/openssl-1.0.1c/ssl/s23_srvr.c soc2012/exxo/openssl-1.0.1c/ssl/s2_clnt.c soc2012/exxo/openssl-1.0.1c/ssl/s2_enc.c soc2012/exxo/openssl-1.0.1c/ssl/s2_lib.c soc2012/exxo/openssl-1.0.1c/ssl/s2_meth.c soc2012/exxo/openssl-1.0.1c/ssl/s2_pkt.c soc2012/exxo/openssl-1.0.1c/ssl/s2_srvr.c soc2012/exxo/openssl-1.0.1c/ssl/s3_both.c soc2012/exxo/openssl-1.0.1c/ssl/s3_clnt.c soc2012/exxo/openssl-1.0.1c/ssl/s3_enc.c soc2012/exxo/openssl-1.0.1c/ssl/s3_lib.c soc2012/exxo/openssl-1.0.1c/ssl/s3_meth.c soc2012/exxo/openssl-1.0.1c/ssl/s3_pkt.c soc2012/exxo/openssl-1.0.1c/ssl/s3_srvr.c soc2012/exxo/openssl-1.0.1c/ssl/srtp.h soc2012/exxo/openssl-1.0.1c/ssl/ssl-lib.com soc2012/exxo/openssl-1.0.1c/ssl/ssl.h soc2012/exxo/openssl-1.0.1c/ssl/ssl2.h soc2012/exxo/openssl-1.0.1c/ssl/ssl23.h soc2012/exxo/openssl-1.0.1c/ssl/ssl3.h soc2012/exxo/openssl-1.0.1c/ssl/ssl_algs.c soc2012/exxo/openssl-1.0.1c/ssl/ssl_asn1.c soc2012/exxo/openssl-1.0.1c/ssl/ssl_cert.c soc2012/exxo/openssl-1.0.1c/ssl/ssl_ciph.c soc2012/exxo/openssl-1.0.1c/ssl/ssl_err.c soc2012/exxo/openssl-1.0.1c/ssl/ssl_err2.c soc2012/exxo/openssl-1.0.1c/ssl/ssl_lib.c soc2012/exxo/openssl-1.0.1c/ssl/ssl_locl.h soc2012/exxo/openssl-1.0.1c/ssl/ssl_rsa.c soc2012/exxo/openssl-1.0.1c/ssl/ssl_sess.c soc2012/exxo/openssl-1.0.1c/ssl/ssl_stat.c soc2012/exxo/openssl-1.0.1c/ssl/ssl_task.c soc2012/exxo/openssl-1.0.1c/ssl/ssl_txt.c soc2012/exxo/openssl-1.0.1c/ssl/ssltest.c soc2012/exxo/openssl-1.0.1c/ssl/t1_clnt.c soc2012/exxo/openssl-1.0.1c/ssl/t1_enc.c soc2012/exxo/openssl-1.0.1c/ssl/t1_lib.c soc2012/exxo/openssl-1.0.1c/ssl/t1_meth.c soc2012/exxo/openssl-1.0.1c/ssl/t1_reneg.c soc2012/exxo/openssl-1.0.1c/ssl/t1_srvr.c soc2012/exxo/openssl-1.0.1c/ssl/tls1.h soc2012/exxo/openssl-1.0.1c/ssl/tls_srp.c soc2012/exxo/openssl-1.0.1c/test/ soc2012/exxo/openssl-1.0.1c/test/CAss.cnf soc2012/exxo/openssl-1.0.1c/test/CAssdh.cnf soc2012/exxo/openssl-1.0.1c/test/CAssdsa.cnf soc2012/exxo/openssl-1.0.1c/test/CAssrsa.cnf soc2012/exxo/openssl-1.0.1c/test/CAtsa.cnf soc2012/exxo/openssl-1.0.1c/test/Makefile soc2012/exxo/openssl-1.0.1c/test/P1ss.cnf soc2012/exxo/openssl-1.0.1c/test/P2ss.cnf soc2012/exxo/openssl-1.0.1c/test/Sssdsa.cnf soc2012/exxo/openssl-1.0.1c/test/Sssrsa.cnf soc2012/exxo/openssl-1.0.1c/test/Uss.cnf soc2012/exxo/openssl-1.0.1c/test/VMSca-response.1 (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/VMSca-response.2 soc2012/exxo/openssl-1.0.1c/test/asn1test.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/bctest (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/bctest.com soc2012/exxo/openssl-1.0.1c/test/bftest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/bntest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/bntest.com soc2012/exxo/openssl-1.0.1c/test/casttest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/clean_test.com (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/cms-examples.pl soc2012/exxo/openssl-1.0.1c/test/cms-test.pl soc2012/exxo/openssl-1.0.1c/test/destest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/dhtest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/dsatest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/dummytest.c soc2012/exxo/openssl-1.0.1c/test/ecdhtest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/ecdsatest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/ectest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/enginetest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/evp_test.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/evptests.txt soc2012/exxo/openssl-1.0.1c/test/exptest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/hmactest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/ideatest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/igetest.c soc2012/exxo/openssl-1.0.1c/test/jpaketest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/maketests.com soc2012/exxo/openssl-1.0.1c/test/md2test.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/md4test.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/md5test.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/mdc2test.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/methtest.c soc2012/exxo/openssl-1.0.1c/test/pkcs7-1.pem soc2012/exxo/openssl-1.0.1c/test/pkcs7.pem soc2012/exxo/openssl-1.0.1c/test/pkits-test.pl soc2012/exxo/openssl-1.0.1c/test/r160test.c soc2012/exxo/openssl-1.0.1c/test/randtest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/rc2test.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/rc4test.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/rc5test.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/rmdtest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/rsa_test.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/sha1test.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/sha256t.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/sha512t.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/shatest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/smcont.txt soc2012/exxo/openssl-1.0.1c/test/smime-certs/ soc2012/exxo/openssl-1.0.1c/test/smime-certs/smdsa1.pem soc2012/exxo/openssl-1.0.1c/test/smime-certs/smdsa2.pem soc2012/exxo/openssl-1.0.1c/test/smime-certs/smdsa3.pem soc2012/exxo/openssl-1.0.1c/test/smime-certs/smdsap.pem soc2012/exxo/openssl-1.0.1c/test/smime-certs/smroot.pem soc2012/exxo/openssl-1.0.1c/test/smime-certs/smrsa1.pem soc2012/exxo/openssl-1.0.1c/test/smime-certs/smrsa2.pem soc2012/exxo/openssl-1.0.1c/test/smime-certs/smrsa3.pem soc2012/exxo/openssl-1.0.1c/test/srptest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/ssltest.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/tcrl soc2012/exxo/openssl-1.0.1c/test/tcrl.com soc2012/exxo/openssl-1.0.1c/test/test.cnf soc2012/exxo/openssl-1.0.1c/test/test_padlock (contents, props changed) soc2012/exxo/openssl-1.0.1c/test/testca soc2012/exxo/openssl-1.0.1c/test/testca.com soc2012/exxo/openssl-1.0.1c/test/testcrl.pem soc2012/exxo/openssl-1.0.1c/test/testenc soc2012/exxo/openssl-1.0.1c/test/testenc.com soc2012/exxo/openssl-1.0.1c/test/testfipsssl soc2012/exxo/openssl-1.0.1c/test/testgen soc2012/exxo/openssl-1.0.1c/test/testgen.com soc2012/exxo/openssl-1.0.1c/test/testp7.pem soc2012/exxo/openssl-1.0.1c/test/testreq2.pem soc2012/exxo/openssl-1.0.1c/test/testrsa.pem soc2012/exxo/openssl-1.0.1c/test/tests.com soc2012/exxo/openssl-1.0.1c/test/testsid.pem soc2012/exxo/openssl-1.0.1c/test/testss soc2012/exxo/openssl-1.0.1c/test/testss.com soc2012/exxo/openssl-1.0.1c/test/testssl soc2012/exxo/openssl-1.0.1c/test/testssl.com soc2012/exxo/openssl-1.0.1c/test/testsslproxy soc2012/exxo/openssl-1.0.1c/test/testtsa soc2012/exxo/openssl-1.0.1c/test/testtsa.com soc2012/exxo/openssl-1.0.1c/test/testx509.pem soc2012/exxo/openssl-1.0.1c/test/times soc2012/exxo/openssl-1.0.1c/test/tpkcs7 soc2012/exxo/openssl-1.0.1c/test/tpkcs7.com soc2012/exxo/openssl-1.0.1c/test/tpkcs7d soc2012/exxo/openssl-1.0.1c/test/tpkcs7d.com soc2012/exxo/openssl-1.0.1c/test/treq soc2012/exxo/openssl-1.0.1c/test/treq.com soc2012/exxo/openssl-1.0.1c/test/trsa soc2012/exxo/openssl-1.0.1c/test/trsa.com soc2012/exxo/openssl-1.0.1c/test/tsid soc2012/exxo/openssl-1.0.1c/test/tsid.com soc2012/exxo/openssl-1.0.1c/test/tverify.com soc2012/exxo/openssl-1.0.1c/test/tx509 soc2012/exxo/openssl-1.0.1c/test/tx509.com soc2012/exxo/openssl-1.0.1c/test/v3-cert1.pem soc2012/exxo/openssl-1.0.1c/test/v3-cert2.pem soc2012/exxo/openssl-1.0.1c/test/wp_test.c (contents, props changed) soc2012/exxo/openssl-1.0.1c/times/ soc2012/exxo/openssl-1.0.1c/times/090/ soc2012/exxo/openssl-1.0.1c/times/090/586-100.nt soc2012/exxo/openssl-1.0.1c/times/091/ soc2012/exxo/openssl-1.0.1c/times/091/486-50.nt soc2012/exxo/openssl-1.0.1c/times/091/586-100.lnx soc2012/exxo/openssl-1.0.1c/times/091/68000.bsd soc2012/exxo/openssl-1.0.1c/times/091/686-200.lnx soc2012/exxo/openssl-1.0.1c/times/091/alpha064.osf soc2012/exxo/openssl-1.0.1c/times/091/alpha164.lnx soc2012/exxo/openssl-1.0.1c/times/091/alpha164.osf soc2012/exxo/openssl-1.0.1c/times/091/mips-rel.pl soc2012/exxo/openssl-1.0.1c/times/091/r10000.irx soc2012/exxo/openssl-1.0.1c/times/091/r3000.ult soc2012/exxo/openssl-1.0.1c/times/091/r4400.irx soc2012/exxo/openssl-1.0.1c/times/100.lnx soc2012/exxo/openssl-1.0.1c/times/100.nt soc2012/exxo/openssl-1.0.1c/times/200.lnx soc2012/exxo/openssl-1.0.1c/times/486-66.dos soc2012/exxo/openssl-1.0.1c/times/486-66.nt soc2012/exxo/openssl-1.0.1c/times/486-66.w31 soc2012/exxo/openssl-1.0.1c/times/5.lnx soc2012/exxo/openssl-1.0.1c/times/586-085i.nt soc2012/exxo/openssl-1.0.1c/times/586-100.LN3 soc2012/exxo/openssl-1.0.1c/times/586-100.NT2 soc2012/exxo/openssl-1.0.1c/times/586-100.dos soc2012/exxo/openssl-1.0.1c/times/586-100.ln4 soc2012/exxo/openssl-1.0.1c/times/586-100.lnx soc2012/exxo/openssl-1.0.1c/times/586-100.nt soc2012/exxo/openssl-1.0.1c/times/586-100.ntx soc2012/exxo/openssl-1.0.1c/times/586-100.w31 soc2012/exxo/openssl-1.0.1c/times/586-1002.lnx soc2012/exxo/openssl-1.0.1c/times/586p-100.lnx soc2012/exxo/openssl-1.0.1c/times/686-200.bsd soc2012/exxo/openssl-1.0.1c/times/686-200.lnx soc2012/exxo/openssl-1.0.1c/times/686-200.nt soc2012/exxo/openssl-1.0.1c/times/L1 soc2012/exxo/openssl-1.0.1c/times/R10000.t soc2012/exxo/openssl-1.0.1c/times/R4400.t soc2012/exxo/openssl-1.0.1c/times/aix.t soc2012/exxo/openssl-1.0.1c/times/aixold.t soc2012/exxo/openssl-1.0.1c/times/alpha.t soc2012/exxo/openssl-1.0.1c/times/alpha400.t soc2012/exxo/openssl-1.0.1c/times/cyrix100.lnx soc2012/exxo/openssl-1.0.1c/times/dgux-x86.t soc2012/exxo/openssl-1.0.1c/times/dgux.t soc2012/exxo/openssl-1.0.1c/times/hpux-acc.t soc2012/exxo/openssl-1.0.1c/times/hpux-kr.t soc2012/exxo/openssl-1.0.1c/times/hpux.t soc2012/exxo/openssl-1.0.1c/times/p2.w95 soc2012/exxo/openssl-1.0.1c/times/pent2.t soc2012/exxo/openssl-1.0.1c/times/readme soc2012/exxo/openssl-1.0.1c/times/s586-100.lnx soc2012/exxo/openssl-1.0.1c/times/s586-100.nt soc2012/exxo/openssl-1.0.1c/times/sgi.t soc2012/exxo/openssl-1.0.1c/times/sparc.t soc2012/exxo/openssl-1.0.1c/times/sparc2 soc2012/exxo/openssl-1.0.1c/times/sparcLX.t soc2012/exxo/openssl-1.0.1c/times/usparc.t soc2012/exxo/openssl-1.0.1c/times/x86/ soc2012/exxo/openssl-1.0.1c/times/x86/bfs.cpp soc2012/exxo/openssl-1.0.1c/times/x86/casts.cpp soc2012/exxo/openssl-1.0.1c/times/x86/des3s.cpp soc2012/exxo/openssl-1.0.1c/times/x86/dess.cpp soc2012/exxo/openssl-1.0.1c/times/x86/md4s.cpp soc2012/exxo/openssl-1.0.1c/times/x86/md5s.cpp soc2012/exxo/openssl-1.0.1c/times/x86/rc4s.cpp soc2012/exxo/openssl-1.0.1c/times/x86/sha1s.cpp soc2012/exxo/openssl-1.0.1c/tools/ soc2012/exxo/openssl-1.0.1c/tools/Makefile soc2012/exxo/openssl-1.0.1c/tools/c89.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/tools/c_hash soc2012/exxo/openssl-1.0.1c/tools/c_info soc2012/exxo/openssl-1.0.1c/tools/c_issuer soc2012/exxo/openssl-1.0.1c/tools/c_name soc2012/exxo/openssl-1.0.1c/tools/c_rehash soc2012/exxo/openssl-1.0.1c/tools/c_rehash.in soc2012/exxo/openssl-1.0.1c/util/ soc2012/exxo/openssl-1.0.1c/util/FreeBSD.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/add_cr.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/bat.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/ck_errf.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/clean-depend.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/copy.pl soc2012/exxo/openssl-1.0.1c/util/cygwin.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/deleof.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/deltree.com soc2012/exxo/openssl-1.0.1c/util/dirname.pl soc2012/exxo/openssl-1.0.1c/util/do_ms.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/domd (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/err-ins.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/extract-names.pl soc2012/exxo/openssl-1.0.1c/util/extract-section.pl soc2012/exxo/openssl-1.0.1c/util/files.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/fixNT.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/install.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/libeay.num (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/mk1mf.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/mkcerts.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/mkdef.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/mkdir-p.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/mkerr.pl soc2012/exxo/openssl-1.0.1c/util/mkfiles.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/mklink.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/mkrc.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/mkstack.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/opensslwrap.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/perlpath.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/pl/ soc2012/exxo/openssl-1.0.1c/util/pl/BC-32.pl soc2012/exxo/openssl-1.0.1c/util/pl/Mingw32.pl soc2012/exxo/openssl-1.0.1c/util/pl/OS2-EMX.pl soc2012/exxo/openssl-1.0.1c/util/pl/VC-32.pl soc2012/exxo/openssl-1.0.1c/util/pl/linux.pl soc2012/exxo/openssl-1.0.1c/util/pl/netware.pl soc2012/exxo/openssl-1.0.1c/util/pl/ultrix.pl soc2012/exxo/openssl-1.0.1c/util/pl/unix.pl soc2012/exxo/openssl-1.0.1c/util/pod2man.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/pod2mantest (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/pod2mantest.pod soc2012/exxo/openssl-1.0.1c/util/point.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/selftest.pl soc2012/exxo/openssl-1.0.1c/util/shlib_wrap.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/sp-diff.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/speed.sh (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/src-dep.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/ssleay.num (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/tab_num.pl (contents, props changed) soc2012/exxo/openssl-1.0.1c/util/x86asm.sh (contents, props changed) soc2012/exxo/regress/README.txt soc2012/exxo/regress/openssl-1.0.1c/ soc2012/exxo/regress/openssl-1.0.1c/Makefile soc2012/exxo/regress/openssl-1.0.1c/Makefile.in soc2012/exxo/regress/openssl-1.0.1c/bin/ soc2012/exxo/regress/openssl-1.0.1c/log/ soc2012/exxo/regress/openssl-1.0.1c/rg1/ soc2012/exxo/regress/openssl-1.0.1c/rg1/Makefile soc2012/exxo/regress/openssl-1.0.1c/rg1/rg1.c soc2012/exxo/regress/openssl-1.0.1c/rg1/rg1.sh (contents, props changed) soc2012/exxo/regress/openssl-1.0.1c/rg2/ soc2012/exxo/regress/openssl-1.0.1c/rg2/..basename/ soc2012/exxo/regress/openssl-1.0.1c/rg2/Makefile soc2012/exxo/regress/openssl-1.0.1c/rg2/rg2.c soc2012/exxo/regress/openssl-1.0.1c/rg2/rg2.sh (contents, props changed) soc2012/exxo/regress/openssl-1.0.1c/rg3/ soc2012/exxo/regress/openssl-1.0.1c/rg3/..basename/ soc2012/exxo/regress/openssl-1.0.1c/rg3/Makefile soc2012/exxo/regress/openssl-1.0.1c/rg3/rg3.c soc2012/exxo/regress/openssl-1.0.1c/rg3/rg3.sh (contents, props changed) soc2012/exxo/regress/regress.in (contents, props changed) Deleted: soc2012/exxo/head/ Modified: soc2012/exxo/patches/openssl-1.0.1c-getaddrinfo.patch Added: soc2012/exxo/openssl-1.0.1c/ACKNOWLEDGMENTS ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/exxo/openssl-1.0.1c/ACKNOWLEDGMENTS Thu Jun 14 00:03:31 2012 (r237649) @@ -0,0 +1,25 @@ +The OpenSSL project depends on volunteer efforts and financial support from +the end user community. That support comes in the form of donations and paid +sponsorships, software support contracts, paid consulting services +and commissioned software development. + +Since all these activities support the continued development and improvement +of OpenSSL we consider all these clients and customers as sponsors of the +OpenSSL project. + +We would like to identify and thank the following such sponsors for their past +or current significant support of the OpenSSL project: + +Very significant support: + + OpenGear: www.opengear.com + +Significant support: + + PSW Group: www.psw.net + +Please note that we ask permission to identify sponsors and that some sponsors +we consider eligible for inclusion here have requested to remain anonymous. + +Additional sponsorship or financial support is always welcome: for more +information please contact the OpenSSL Software Foundation. Added: soc2012/exxo/openssl-1.0.1c/CHANGES ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/exxo/openssl-1.0.1c/CHANGES Thu Jun 14 00:03:31 2012 (r237649) @@ -0,0 +1,9992 @@ + + OpenSSL CHANGES + _______________ + + Changes between 1.0.1b and 1.0.1c [10 May 2012] + + *) Sanity check record length before skipping explicit IV in TLS + 1.2, 1.1 and DTLS to fix DoS attack. + + Thanks to Codenomicon for discovering this issue using Fuzz-o-Matic + fuzzing as a service testing platform. + (CVE-2012-2333) + [Steve Henson] + + *) Initialise tkeylen properly when encrypting CMS messages. + Thanks to Solar Designer of Openwall for reporting this issue. + [Steve Henson] + + *) In FIPS mode don't try to use composite ciphers as they are not + approved. + [Steve Henson] + + Changes between 1.0.1a and 1.0.1b [26 Apr 2012] + + *) OpenSSL 1.0.0 sets SSL_OP_ALL to 0x80000FFFL and OpenSSL 1.0.1 and + 1.0.1a set SSL_OP_NO_TLSv1_1 to 0x00000400L which would unfortunately + mean any application compiled against OpenSSL 1.0.0 headers setting + SSL_OP_ALL would also set SSL_OP_NO_TLSv1_1, unintentionally disablng + TLS 1.1 also. Fix this by changing the value of SSL_OP_NO_TLSv1_1 to + 0x10000000L Any application which was previously compiled against + OpenSSL 1.0.1 or 1.0.1a headers and which cares about SSL_OP_NO_TLSv1_1 + will need to be recompiled as a result. Letting be results in + inability to disable specifically TLS 1.1 and in client context, + in unlike event, limit maximum offered version to TLS 1.0 [see below]. + [Steve Henson] + + *) In order to ensure interoperabilty SSL_OP_NO_protocolX does not + disable just protocol X, but all protocols above X *if* there are + protocols *below* X still enabled. In more practical terms it means + that if application wants to disable TLS1.0 in favor of TLS1.1 and + above, it's not sufficient to pass SSL_OP_NO_TLSv1, one has to pass + SSL_OP_NO_TLSv1|SSL_OP_NO_SSLv3|SSL_OP_NO_SSLv2. This applies to + client side. + [Andy Polyakov] + + Changes between 1.0.1 and 1.0.1a [19 Apr 2012] + + *) Check for potentially exploitable overflows in asn1_d2i_read_bio + BUF_mem_grow and BUF_mem_grow_clean. Refuse attempts to shrink buffer + in CRYPTO_realloc_clean. + + Thanks to Tavis Ormandy, Google Security Team, for discovering this + issue and to Adam Langley for fixing it. + (CVE-2012-2110) + [Adam Langley (Google), Tavis Ormandy, Google Security Team] + + *) Don't allow TLS 1.2 SHA-256 ciphersuites in TLS 1.0, 1.1 connections. + [Adam Langley] + + *) Workarounds for some broken servers that "hang" if a client hello + record length exceeds 255 bytes. + + 1. Do not use record version number > TLS 1.0 in initial client + hello: some (but not all) hanging servers will now work. + 2. If we set OPENSSL_MAX_TLS1_2_CIPHER_LENGTH this will truncate + the number of ciphers sent in the client hello. This should be + set to an even number, such as 50, for example by passing: + -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 to config or Configure. + Most broken servers should now work. + 3. If all else fails setting OPENSSL_NO_TLS1_2_CLIENT will disable + TLS 1.2 client support entirely. + [Steve Henson] + + *) Fix SEGV in Vector Permutation AES module observed in OpenSSH. + [Andy Polyakov] + + Changes between 1.0.0h and 1.0.1 [14 Mar 2012] + + *) Add compatibility with old MDC2 signatures which use an ASN1 OCTET + STRING form instead of a DigestInfo. + [Steve Henson] + + *) The format used for MDC2 RSA signatures is inconsistent between EVP + and the RSA_sign/RSA_verify functions. This was made more apparent when + OpenSSL used RSA_sign/RSA_verify for some RSA signatures in particular + those which went through EVP_PKEY_METHOD in 1.0.0 and later. Detect + the correct format in RSA_verify so both forms transparently work. + [Steve Henson] + + *) Some servers which support TLS 1.0 can choke if we initially indicate + support for TLS 1.2 and later renegotiate using TLS 1.0 in the RSA + encrypted premaster secret. As a workaround use the maximum pemitted + client version in client hello, this should keep such servers happy + and still work with previous versions of OpenSSL. + [Steve Henson] + + *) Add support for TLS/DTLS heartbeats. + [Robin Seggelmann ] + + *) Add support for SCTP. + [Robin Seggelmann ] + + *) Improved PRNG seeding for VOS. + [Paul Green ] + + *) Extensive assembler packs updates, most notably: + + - x86[_64]: AES-NI, PCLMULQDQ, RDRAND support; + - x86[_64]: SSSE3 support (SHA1, vector-permutation AES); + - x86_64: bit-sliced AES implementation; + - ARM: NEON support, contemporary platforms optimizations; + - s390x: z196 support; + - *: GHASH and GF(2^m) multiplication implementations; + + [Andy Polyakov] + + *) Make TLS-SRP code conformant with RFC 5054 API cleanup + (removal of unnecessary code) + [Peter Sylvester ] + + *) Add TLS key material exporter from RFC 5705. + [Eric Rescorla] + + *) Add DTLS-SRTP negotiation from RFC 5764. + [Eric Rescorla] + + *) Add Next Protocol Negotiation, + http://tools.ietf.org/html/draft-agl-tls-nextprotoneg-00. Can be + disabled with a no-npn flag to config or Configure. Code donated + by Google. + [Adam Langley and Ben Laurie] + + *) Add optional 64-bit optimized implementations of elliptic curves NIST-P224, + NIST-P256, NIST-P521, with constant-time single point multiplication on + typical inputs. Compiler support for the nonstandard type __uint128_t is + required to use this (present in gcc 4.4 and later, for 64-bit builds). + Code made available under Apache License version 2.0. + + Specify "enable-ec_nistp_64_gcc_128" on the Configure (or config) command + line to include this in your build of OpenSSL, and run "make depend" (or + "make update"). This enables the following EC_METHODs: + + EC_GFp_nistp224_method() + EC_GFp_nistp256_method() + EC_GFp_nistp521_method() + + EC_GROUP_new_by_curve_name() will automatically use these (while + EC_GROUP_new_curve_GFp() currently prefers the more flexible + implementations). + [Emilia Käsper, Adam Langley, Bodo Moeller (Google)] + + *) Use type ossl_ssize_t instad of ssize_t which isn't available on + all platforms. Move ssize_t definition from e_os.h to the public + header file e_os2.h as it now appears in public header file cms.h + [Steve Henson] + + *) New -sigopt option to the ca, req and x509 utilities. Additional + signature parameters can be passed using this option and in + particular PSS. + [Steve Henson] + + *) Add RSA PSS signing function. This will generate and set the + appropriate AlgorithmIdentifiers for PSS based on those in the + corresponding EVP_MD_CTX structure. No application support yet. + [Steve Henson] + + *) Support for companion algorithm specific ASN1 signing routines. + New function ASN1_item_sign_ctx() signs a pre-initialised + EVP_MD_CTX structure and sets AlgorithmIdentifiers based on + the appropriate parameters. + [Steve Henson] + + *) Add new algorithm specific ASN1 verification initialisation function + to EVP_PKEY_ASN1_METHOD: this is not in EVP_PKEY_METHOD since the ASN1 + handling will be the same no matter what EVP_PKEY_METHOD is used. + Add a PSS handler to support verification of PSS signatures: checked + against a number of sample certificates. + [Steve Henson] + + *) Add signature printing for PSS. Add PSS OIDs. + [Steve Henson, Martin Kaiser ] + + *) Add algorithm specific signature printing. An individual ASN1 method + can now print out signatures instead of the standard hex dump. + + More complex signatures (e.g. PSS) can print out more meaningful + information. Include DSA version that prints out the signature + parameters r, s. + [Steve Henson] + + *) Password based recipient info support for CMS library: implementing + RFC3211. + [Steve Henson] + + *) Split password based encryption into PBES2 and PBKDF2 functions. This + neatly separates the code into cipher and PBE sections and is required + for some algorithms that split PBES2 into separate pieces (such as + password based CMS). + [Steve Henson] + + *) Session-handling fixes: + - Fix handling of connections that are resuming with a session ID, + but also support Session Tickets. + - Fix a bug that suppressed issuing of a new ticket if the client + presented a ticket with an expired session. + - Try to set the ticket lifetime hint to something reasonable. + - Make tickets shorter by excluding irrelevant information. + - On the client side, don't ignore renewed tickets. + [Adam Langley, Bodo Moeller (Google)] + + *) Fix PSK session representation. + [Bodo Moeller] + + *) Add RC4-MD5 and AESNI-SHA1 "stitched" implementations. + + This work was sponsored by Intel. + [Andy Polyakov] + + *) Add GCM support to TLS library. Some custom code is needed to split + the IV between the fixed (from PRF) and explicit (from TLS record) + portions. This adds all GCM ciphersuites supported by RFC5288 and + RFC5289. Generalise some AES* cipherstrings to inlclude GCM and + add a special AESGCM string for GCM only. + [Steve Henson] + + *) Expand range of ctrls for AES GCM. Permit setting invocation + field on decrypt and retrieval of invocation field only on encrypt. + [Steve Henson] + + *) Add HMAC ECC ciphersuites from RFC5289. Include SHA384 PRF support. + As required by RFC5289 these ciphersuites cannot be used if for + versions of TLS earlier than 1.2. + [Steve Henson] + + *) For FIPS capable OpenSSL interpret a NULL default public key method + as unset and return the appopriate default but do *not* set the default. + This means we can return the appopriate method in applications that + swicth between FIPS and non-FIPS modes. + [Steve Henson] + + *) Redirect HMAC and CMAC operations to FIPS module in FIPS mode. If an + ENGINE is used then we cannot handle that in the FIPS module so we + keep original code iff non-FIPS operations are allowed. + [Steve Henson] + + *) Add -attime option to openssl utilities. + [Peter Eckersley , Ben Laurie and Steve Henson] + + *) Redirect DSA and DH operations to FIPS module in FIPS mode. + [Steve Henson] + + *) Redirect ECDSA and ECDH operations to FIPS module in FIPS mode. Also use + FIPS EC methods unconditionally for now. + [Steve Henson] + + *) New build option no-ec2m to disable characteristic 2 code. + [Steve Henson] + + *) Backport libcrypto audit of return value checking from 1.1.0-dev; not + all cases can be covered as some introduce binary incompatibilities. + [Steve Henson] + + *) Redirect RSA operations to FIPS module including keygen, + encrypt, decrypt, sign and verify. Block use of non FIPS RSA methods. + [Steve Henson] + + *) Add similar low level API blocking to ciphers. + [Steve Henson] + + *) Low level digest APIs are not approved in FIPS mode: any attempt + to use these will cause a fatal error. Applications that *really* want + to use them can use the private_* version instead. + [Steve Henson] + + *) Redirect cipher operations to FIPS module for FIPS builds. + [Steve Henson] + + *) Redirect digest operations to FIPS module for FIPS builds. + [Steve Henson] + + *) Update build system to add "fips" flag which will link in fipscanister.o + for static and shared library builds embedding a signature if needed. + [Steve Henson] + + *) Output TLS supported curves in preference order instead of numerical + order. This is currently hardcoded for the highest order curves first. + This should be configurable so applications can judge speed vs strength. + [Steve Henson] + + *) Add TLS v1.2 server support for client authentication. + [Steve Henson] + + *) Add support for FIPS mode in ssl library: disable SSLv3, non-FIPS ciphers + and enable MD5. + [Steve Henson] + + *) Functions FIPS_mode_set() and FIPS_mode() which call the underlying + FIPS modules versions. + [Steve Henson] + + *) Add TLS v1.2 client side support for client authentication. Keep cache + of handshake records longer as we don't know the hash algorithm to use + until after the certificate request message is received. + [Steve Henson] + + *) Initial TLS v1.2 client support. Add a default signature algorithms + extension including all the algorithms we support. Parse new signature + format in client key exchange. Relax some ECC signing restrictions for + TLS v1.2 as indicated in RFC5246. + [Steve Henson] + + *) Add server support for TLS v1.2 signature algorithms extension. Switch + to new signature format when needed using client digest preference. + All server ciphersuites should now work correctly in TLS v1.2. No client + support yet and no support for client certificates. + [Steve Henson] + + *) Initial TLS v1.2 support. Add new SHA256 digest to ssl code, switch + to SHA256 for PRF when using TLS v1.2 and later. Add new SHA256 based + ciphersuites. At present only RSA key exchange ciphersuites work with + TLS v1.2. Add new option for TLS v1.2 replacing the old and obsolete + SSL_OP_PKCS1_CHECK flags with SSL_OP_NO_TLSv1_2. New TLSv1.2 methods + and version checking. + [Steve Henson] + + *) New option OPENSSL_NO_SSL_INTERN. If an application can be compiled + with this defined it will not be affected by any changes to ssl internal + structures. Add several utility functions to allow openssl application + to work with OPENSSL_NO_SSL_INTERN defined. + [Steve Henson] + + *) Add SRP support. + [Tom Wu and Ben Laurie] + + *) Add functions to copy EVP_PKEY_METHOD and retrieve flags and id. + [Steve Henson] + + *) Permit abbreviated handshakes when renegotiating using the function + SSL_renegotiate_abbreviated(). + [Robin Seggelmann ] + + *) Add call to ENGINE_register_all_complete() to + ENGINE_load_builtin_engines(), so some implementations get used + automatically instead of needing explicit application support. + [Steve Henson] + + *) Add support for TLS key exporter as described in RFC5705. + [Robin Seggelmann , Steve Henson] + + *) Initial TLSv1.1 support. Since TLSv1.1 is very similar to TLS v1.0 only + a few changes are required: + + Add SSL_OP_NO_TLSv1_1 flag. + Add TLSv1_1 methods. + Update version checking logic to handle version 1.1. + Add explicit IV handling (ported from DTLS code). + Add command line options to s_client/s_server. + [Steve Henson] + + Changes between 1.0.0g and 1.0.0h [12 Mar 2012] + + *) Fix MMA (Bleichenbacher's attack on PKCS #1 v1.5 RSA padding) weakness + in CMS and PKCS7 code. When RSA decryption fails use a random key for + content decryption and always return the same error. Note: this attack + needs on average 2^20 messages so it only affects automated senders. The + old behaviour can be reenabled in the CMS code by setting the + CMS_DEBUG_DECRYPT flag: this is useful for debugging and testing where + an MMA defence is not necessary. + Thanks to Ivan Nestlerode for discovering + this issue. (CVE-2012-0884) + [Steve Henson] + + *) Fix CVE-2011-4619: make sure we really are receiving a + client hello before rejecting multiple SGC restarts. Thanks to + Ivan Nestlerode for discovering this bug. + [Steve Henson] + + Changes between 1.0.0f and 1.0.0g [18 Jan 2012] + + *) Fix for DTLS DoS issue introduced by fix for CVE-2011-4109. + Thanks to Antonio Martin, Enterprise Secure Access Research and + Development, Cisco Systems, Inc. for discovering this bug and + preparing a fix. (CVE-2012-0050) + [Antonio Martin] + + Changes between 1.0.0e and 1.0.0f [4 Jan 2012] + + *) Nadhem Alfardan and Kenny Paterson have discovered an extension + of the Vaudenay padding oracle attack on CBC mode encryption + which enables an efficient plaintext recovery attack against + the OpenSSL implementation of DTLS. Their attack exploits timing + differences arising during decryption processing. A research + paper describing this attack can be found at: + http://www.isg.rhul.ac.uk/~kp/dtls.pdf + Thanks go to Nadhem Alfardan and Kenny Paterson of the Information + Security Group at Royal Holloway, University of London + (www.isg.rhul.ac.uk) for discovering this flaw and to Robin Seggelmann + and Michael Tuexen + for preparing the fix. (CVE-2011-4108) + [Robin Seggelmann, Michael Tuexen] + + *) Clear bytes used for block padding of SSL 3.0 records. + (CVE-2011-4576) + [Adam Langley (Google)] + + *) Only allow one SGC handshake restart for SSL/TLS. Thanks to George + Kadianakis for discovering this issue and + Adam Langley for preparing the fix. (CVE-2011-4619) + [Adam Langley (Google)] + + *) Check parameters are not NULL in GOST ENGINE. (CVE-2012-0027) + [Andrey Kulikov ] + + *) Prevent malformed RFC3779 data triggering an assertion failure. + Thanks to Andrew Chi, BBN Technologies, for discovering the flaw + and Rob Austein for fixing it. (CVE-2011-4577) + [Rob Austein ] + + *) Improved PRNG seeding for VOS. + [Paul Green ] + + *) Fix ssl_ciph.c set-up race. + [Adam Langley (Google)] + + *) Fix spurious failures in ecdsatest.c. + [Emilia Käsper (Google)] + + *) Fix the BIO_f_buffer() implementation (which was mixing different + interpretations of the '..._len' fields). + [Adam Langley (Google)] + + *) Fix handling of BN_BLINDING: now BN_BLINDING_invert_ex (rather than + BN_BLINDING_invert_ex) calls BN_BLINDING_update, ensuring that concurrent + threads won't reuse the same blinding coefficients. + + This also avoids the need to obtain the CRYPTO_LOCK_RSA_BLINDING + lock to call BN_BLINDING_invert_ex, and avoids one use of + BN_BLINDING_update for each BN_BLINDING structure (previously, + the last update always remained unused). + [Emilia Käsper (Google)] + + *) In ssl3_clear, preserve s3->init_extra along with s3->rbuf. + [Bob Buckholz (Google)] + + Changes between 1.0.0d and 1.0.0e [6 Sep 2011] + + *) Fix bug where CRLs with nextUpdate in the past are sometimes accepted + by initialising X509_STORE_CTX properly. (CVE-2011-3207) + [Kaspar Brand ] + + *) Fix SSL memory handling for (EC)DH ciphersuites, in particular + for multi-threaded use of ECDH. (CVE-2011-3210) + [Adam Langley (Google)] + + *) Fix x509_name_ex_d2i memory leak on bad inputs. + [Bodo Moeller] + + *) Remove hard coded ecdsaWithSHA1 signature tests in ssl code and check + signature public key algorithm by using OID xref utilities instead. + Before this you could only use some ECC ciphersuites with SHA1 only. + [Steve Henson] + + *) Add protection against ECDSA timing attacks as mentioned in the paper + by Billy Bob Brumley and Nicola Tuveri, see: + + http://eprint.iacr.org/2011/232.pdf + + [Billy Bob Brumley and Nicola Tuveri] + + Changes between 1.0.0c and 1.0.0d [8 Feb 2011] + + *) Fix parsing of OCSP stapling ClientHello extension. CVE-2011-0014 + [Neel Mehta, Adam Langley, Bodo Moeller (Google)] + + *) Fix bug in string printing code: if *any* escaping is enabled we must + escape the escape character (backslash) or the resulting string is + ambiguous. + [Steve Henson] + + Changes between 1.0.0b and 1.0.0c [2 Dec 2010] + + *) Disable code workaround for ancient and obsolete Netscape browsers + and servers: an attacker can use it in a ciphersuite downgrade attack. + Thanks to Martin Rex for discovering this bug. CVE-2010-4180 + [Steve Henson] + + *) Fixed J-PAKE implementation error, originally discovered by + Sebastien Martini, further info and confirmation from Stefan + Arentz and Feng Hao. Note that this fix is a security fix. CVE-2010-4252 + [Ben Laurie] + + Changes between 1.0.0a and 1.0.0b [16 Nov 2010] + + *) Fix extension code to avoid race conditions which can result in a buffer + overrun vulnerability: resumed sessions must not be modified as they can + be shared by multiple threads. CVE-2010-3864 + [Steve Henson] + + *) Fix WIN32 build system to correctly link an ENGINE directory into + a DLL. + [Steve Henson] + + Changes between 1.0.0 and 1.0.0a [01 Jun 2010] + + *) Check return value of int_rsa_verify in pkey_rsa_verifyrecover + (CVE-2010-1633) + [Steve Henson, Peter-Michael Hager ] + + Changes between 0.9.8n and 1.0.0 [29 Mar 2010] + + *) Add "missing" function EVP_CIPHER_CTX_copy(). This copies a cipher + context. The operation can be customised via the ctrl mechanism in + case ENGINEs want to include additional functionality. + [Steve Henson] + + *) Tolerate yet another broken PKCS#8 key format: private key value negative. + [Steve Henson] + + *) Add new -subject_hash_old and -issuer_hash_old options to x509 utility to + output hashes compatible with older versions of OpenSSL. + [Willy Weisz ] + + *) Fix compression algorithm handling: if resuming a session use the + compression algorithm of the resumed session instead of determining + it from client hello again. Don't allow server to change algorithm. + [Steve Henson] + + *) Add load_crls() function to apps tidying load_certs() too. Add option + to verify utility to allow additional CRLs to be included. + [Steve Henson] + + *) Update OCSP request code to permit adding custom headers to the request: + some responders need this. + [Steve Henson] + + *) The function EVP_PKEY_sign() returns <=0 on error: check return code + correctly. + [Julia Lawall ] + + *) Update verify callback code in apps/s_cb.c and apps/verify.c, it + needlessly dereferenced structures, used obsolete functions and + didn't handle all updated verify codes correctly. + [Steve Henson] + + *) Disable MD2 in the default configuration. + [Steve Henson] + + *) In BIO_pop() and BIO_push() use the ctrl argument (which was NULL) to + indicate the initial BIO being pushed or popped. This makes it possible + to determine whether the BIO is the one explicitly called or as a result + of the ctrl being passed down the chain. Fix BIO_pop() and SSL BIOs so + it handles reference counts correctly and doesn't zero out the I/O bio + when it is not being explicitly popped. WARNING: applications which + included workarounds for the old buggy behaviour will need to be modified + or they could free up already freed BIOs. + [Steve Henson] + + *) Extend the uni2asc/asc2uni => OPENSSL_uni2asc/OPENSSL_asc2uni + renaming to all platforms (within the 0.9.8 branch, this was + done conditionally on Netware platforms to avoid a name clash). + [Guenter ] + + *) Add ECDHE and PSK support to DTLS. + [Michael Tuexen ] + + *) Add CHECKED_STACK_OF macro to safestack.h, otherwise safestack can't + be used on C++. + [Steve Henson] + + *) Add "missing" function EVP_MD_flags() (without this the only way to + retrieve a digest flags is by accessing the structure directly. Update + EVP_MD_do_all*() and EVP_CIPHER_do_all*() to include the name a digest + or cipher is registered as in the "from" argument. Print out all + registered digests in the dgst usage message instead of manually + attempting to work them out. + [Steve Henson] + + *) If no SSLv2 ciphers are used don't use an SSLv2 compatible client hello: + this allows the use of compression and extensions. Change default cipher + string to remove SSLv2 ciphersuites. This effectively avoids ancient SSLv2 + by default unless an application cipher string requests it. + [Steve Henson] + + *) Alter match criteria in PKCS12_parse(). It used to try to use local + key ids to find matching certificates and keys but some PKCS#12 files + don't follow the (somewhat unwritten) rules and this strategy fails. + Now just gather all certificates together and the first private key + then look for the first certificate that matches the key. + [Steve Henson] + + *) Support use of registered digest and cipher names for dgst and cipher + commands instead of having to add each one as a special case. So now + you can do: + + openssl sha256 foo + + as well as: + + openssl dgst -sha256 foo + + and this works for ENGINE based algorithms too. + + [Steve Henson] + + *) Update Gost ENGINE to support parameter files. + [Victor B. Wagner ] + + *) Support GeneralizedTime in ca utility. + [Oliver Martin , Steve Henson] + + *) Enhance the hash format used for certificate directory links. The new + form uses the canonical encoding (meaning equivalent names will work + even if they aren't identical) and uses SHA1 instead of MD5. This form + is incompatible with the older format and as a result c_rehash should + be used to rebuild symbolic links. + [Steve Henson] + + *) Make PKCS#8 the default write format for private keys, replacing the + traditional format. This form is standardised, more secure and doesn't + include an implicit MD5 dependency. + [Steve Henson] + + *) Add a $gcc_devteam_warn option to Configure. The idea is that any code + committed to OpenSSL should pass this lot as a minimum. + [Steve Henson] + + *) Add session ticket override functionality for use by EAP-FAST. + [Jouni Malinen ] + + *) Modify HMAC functions to return a value. Since these can be implemented + in an ENGINE errors can occur. + [Steve Henson] + + *) Type-checked OBJ_bsearch_ex. + [Ben Laurie] + + *) Type-checked OBJ_bsearch. Also some constification necessitated + by type-checking. Still to come: TXT_DB, bsearch(?), + OBJ_bsearch_ex, qsort, CRYPTO_EX_DATA, ASN1_VALUE, ASN1_STRING, + CONF_VALUE. + [Ben Laurie] + + *) New function OPENSSL_gmtime_adj() to add a specific number of days and + seconds to a tm structure directly, instead of going through OS + specific date routines. This avoids any issues with OS routines such + as the year 2038 bug. New *_adj() functions for ASN1 time structures + and X509_time_adj_ex() to cover the extended range. The existing + X509_time_adj() is still usable and will no longer have any date issues. + [Steve Henson] + + *) Delta CRL support. New use deltas option which will attempt to locate + and search any appropriate delta CRLs available. + + This work was sponsored by Google. + [Steve Henson] + + *) Support for CRLs partitioned by reason code. Reorganise CRL processing + code and add additional score elements. Validate alternate CRL paths + as part of the CRL checking and indicate a new error "CRL path validation + error" in this case. Applications wanting additional details can use + the verify callback and check the new "parent" field. If this is not + NULL CRL path validation is taking place. Existing applications wont + see this because it requires extended CRL support which is off by + default. + + This work was sponsored by Google. + [Steve Henson] + + *) Support for freshest CRL extension. + + This work was sponsored by Google. + [Steve Henson] + + *) Initial indirect CRL support. Currently only supported in the CRLs + passed directly and not via lookup. Process certificate issuer + CRL entry extension and lookup CRL entries by bother issuer name + and serial number. Check and process CRL issuer entry in IDP extension. + + This work was sponsored by Google. + [Steve Henson] + + *) Add support for distinct certificate and CRL paths. The CRL issuer + certificate is validated separately in this case. Only enabled if + an extended CRL support flag is set: this flag will enable additional + CRL functionality in future. + + This work was sponsored by Google. + [Steve Henson] + + *) Add support for policy mappings extension. + + This work was sponsored by Google. + [Steve Henson] + + *) Fixes to pathlength constraint, self issued certificate handling, + policy processing to align with RFC3280 and PKITS tests. + + This work was sponsored by Google. + [Steve Henson] + + *) Support for name constraints certificate extension. DN, email, DNS + and URI types are currently supported. + + This work was sponsored by Google. + [Steve Henson] + + *) To cater for systems that provide a pointer-based thread ID rather + than numeric, deprecate the current numeric thread ID mechanism and + replace it with a structure and associated callback type. This + mechanism allows a numeric "hash" to be extracted from a thread ID in + either case, and on platforms where pointers are larger than 'long', + mixing is done to help ensure the numeric 'hash' is usable even if it + can't be guaranteed unique. The default mechanism is to use "&errno" + as a pointer-based thread ID to distinguish between threads. + + Applications that want to provide their own thread IDs should now use + CRYPTO_THREADID_set_callback() to register a callback that will call + either CRYPTO_THREADID_set_numeric() or CRYPTO_THREADID_set_pointer(). + + Note that ERR_remove_state() is now deprecated, because it is tied + to the assumption that thread IDs are numeric. ERR_remove_state(0) + to free the current thread's error state should be replaced by + ERR_remove_thread_state(NULL). + + (This new approach replaces the functions CRYPTO_set_idptr_callback(), + CRYPTO_get_idptr_callback(), and CRYPTO_thread_idptr() that existed in + OpenSSL 0.9.9-dev between June 2006 and August 2008. Also, if an + application was previously providing a numeric thread callback that + was inappropriate for distinguishing threads, then uniqueness might + have been obtained with &errno that happened immediately in the + intermediate development versions of OpenSSL; this is no longer the + case, the numeric thread callback will now override the automatic use + of &errno.) + [Geoff Thorpe, with help from Bodo Moeller] + + *) Initial support for different CRL issuing certificates. This covers a + simple case where the self issued certificates in the chain exist and + the real CRL issuer is higher in the existing chain. + + This work was sponsored by Google. + [Steve Henson] + + *) Removed effectively defunct crypto/store from the build. + [Ben Laurie] + + *) Revamp of STACK to provide stronger type-checking. Still to come: + TXT_DB, bsearch(?), OBJ_bsearch, qsort, CRYPTO_EX_DATA, ASN1_VALUE, + ASN1_STRING, CONF_VALUE. + [Ben Laurie] + + *) Add a new SSL_MODE_RELEASE_BUFFERS mode flag to release unused buffer + RAM on SSL connections. This option can save about 34k per idle SSL. + [Nick Mathewson] + + *) Revamp of LHASH to provide stronger type-checking. Still to come: + STACK, TXT_DB, bsearch, qsort. + [Ben Laurie] + + *) Initial support for Cryptographic Message Syntax (aka CMS) based + on RFC3850, RFC3851 and RFC3852. New cms directory and cms utility, + support for data, signedData, compressedData, digestedData and + encryptedData, envelopedData types included. Scripts to check against + RFC4134 examples draft and interop and consistency checks of many + content types and variants. + [Steve Henson] + + *) Add options to enc utility to support use of zlib compression BIO. + [Steve Henson] + + *) Extend mk1mf to support importing of options and assembly language + files from Configure script, currently only included in VC-WIN32. + The assembly language rules can now optionally generate the source + files from the associated perl scripts. + [Steve Henson] + + *) Implement remaining functionality needed to support GOST ciphersuites. + Interop testing has been performed using CryptoPro implementations. + [Victor B. Wagner ] + + *) s390x assembler pack. + [Andy Polyakov] + + *) ARMv4 assembler pack. ARMv4 refers to v4 and later ISA, not CPU + "family." + [Andy Polyakov] + + *) Implement Opaque PRF Input TLS extension as specified in + draft-rescorla-tls-opaque-prf-input-00.txt. Since this is not an + official specification yet and no extension type assignment by + IANA exists, this extension (for now) will have to be explicitly + enabled when building OpenSSL by providing the extension number + to use. For example, specify an option + + -DTLSEXT_TYPE_opaque_prf_input=0x9527 + + to the "config" or "Configure" script to enable the extension, + assuming extension number 0x9527 (which is a completely arbitrary + and unofficial assignment based on the MD5 hash of the Internet + Draft). Note that by doing so, you potentially lose + interoperability with other TLS implementations since these might + be using the same extension number for other purposes. + + SSL_set_tlsext_opaque_prf_input(ssl, src, len) is used to set the + opaque PRF input value to use in the handshake. This will create + an interal copy of the length-'len' string at 'src', and will + return non-zero for success. + + To get more control and flexibility, provide a callback function + by using + + SSL_CTX_set_tlsext_opaque_prf_input_callback(ctx, cb) + SSL_CTX_set_tlsext_opaque_prf_input_callback_arg(ctx, arg) + + where + + int (*cb)(SSL *, void *peerinput, size_t len, void *arg); + void *arg; + + Callback function 'cb' will be called in handshakes, and is + expected to use SSL_set_tlsext_opaque_prf_input() as appropriate. + Argument 'arg' is for application purposes (the value as given to + SSL_CTX_set_tlsext_opaque_prf_input_callback_arg() will directly + be provided to the callback function). The callback function + has to return non-zero to report success: usually 1 to use opaque + PRF input just if possible, or 2 to enforce use of the opaque PRF + input. In the latter case, the library will abort the handshake + if opaque PRF input is not successfully negotiated. + + Arguments 'peerinput' and 'len' given to the callback function + will always be NULL and 0 in the case of a client. A server will + see the client's opaque PRF input through these variables if + available (NULL and 0 otherwise). Note that if the server + provides an opaque PRF input, the length must be the same as the + length of the client's opaque PRF input. + + Note that the callback function will only be called when creating + a new session (session resumption can resume whatever was + previously negotiated), and will not be called in SSL 2.0 + handshakes; thus, SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2) or + SSL_set_options(ssl, SSL_OP_NO_SSLv2) is especially recommended + for applications that need to enforce opaque PRF input. + + [Bodo Moeller] + + *) Update ssl code to support digests other than SHA1+MD5 for handshake + MAC. + + [Victor B. Wagner ] + + *) Add RFC4507 support to OpenSSL. This includes the corrections in + RFC4507bis. The encrypted ticket format is an encrypted encoded + SSL_SESSION structure, that way new session features are automatically + supported. + + If a client application caches session in an SSL_SESSION structure + support is transparent because tickets are now stored in the encoded + SSL_SESSION. + + The SSL_CTX structure automatically generates keys for ticket + protection in servers so again support should be possible + with no application modification. + + If a client or server wishes to disable RFC4507 support then the option + SSL_OP_NO_TICKET can be set. + + Add a TLS extension debugging callback to allow the contents of any client + or server extensions to be examined. + + This work was sponsored by Google. + [Steve Henson] + + *) Final changes to avoid use of pointer pointer casts in OpenSSL. + OpenSSL should now compile cleanly on gcc 4.2 + [Peter Hartley , Steve Henson] + + *) Update SSL library to use new EVP_PKEY MAC API. Include generic MAC + support including streaming MAC support: this is required for GOST + ciphersuite support. + [Victor B. Wagner , Steve Henson] + + *) Add option -stream to use PKCS#7 streaming in smime utility. New + function i2d_PKCS7_bio_stream() and PEM_write_PKCS7_bio_stream() + to output in BER and PEM format. + [Steve Henson] + + *) Experimental support for use of HMAC via EVP_PKEY interface. This + allows HMAC to be handled via the EVP_DigestSign*() interface. The + EVP_PKEY "key" in this case is the HMAC key, potentially allowing + ENGINE support for HMAC keys which are unextractable. New -mac and + -macopt options to dgst utility. + [Steve Henson] + + *) New option -sigopt to dgst utility. Update dgst to use + EVP_Digest{Sign,Verify}*. These two changes make it possible to use + alternative signing paramaters such as X9.31 or PSS in the dgst + utility. + [Steve Henson] + + *) Change ssl_cipher_apply_rule(), the internal function that does + the work each time a ciphersuite string requests enabling + ("foo+bar"), moving ("+foo+bar"), disabling ("-foo+bar", or + removing ("!foo+bar") a class of ciphersuites: Now it maintains + the order of disabled ciphersuites such that those ciphersuites + that most recently went from enabled to disabled not only stay + in order with respect to each other, but also have higher priority + than other disabled ciphersuites the next time ciphersuites are + enabled again. + + This means that you can now say, e.g., "PSK:-PSK:HIGH" to enable + the same ciphersuites as with "HIGH" alone, but in a specific + order where the PSK ciphersuites come first (since they are the + most recently disabled ciphersuites when "HIGH" is parsed). + + Also, change ssl_create_cipher_list() (using this new + funcionality) such that between otherwise identical + cihpersuites, ephemeral ECDH is preferred over ephemeral DH in + the default order. + [Bodo Moeller] + + *) Change ssl_create_cipher_list() so that it automatically + arranges the ciphersuites in reasonable order before starting + to process the rule string. Thus, the definition for "DEFAULT" + (SSL_DEFAULT_CIPHER_LIST) now is just "ALL:!aNULL:!eNULL", but + remains equivalent to "AES:ALL:!aNULL:!eNULL:+aECDH:+kRSA:+RC4:@STRENGTH". + This makes it much easier to arrive at a reasonable default order + in applications for which anonymous ciphers are OK (meaning + that you can't actually use DEFAULT). + [Bodo Moeller; suggested by Victor Duchovni] + + *) Split the SSL/TLS algorithm mask (as used for ciphersuite string + processing) into multiple integers instead of setting + "SSL_MKEY_MASK" bits, "SSL_AUTH_MASK" bits, "SSL_ENC_MASK", + "SSL_MAC_MASK", and "SSL_SSL_MASK" bits all in a single integer. + (These masks as well as the individual bit definitions are hidden + away into the non-exported interface ssl/ssl_locl.h, so this + change to the definition of the SSL_CIPHER structure shouldn't + affect applications.) This give us more bits for each of these + categories, so there is no longer a need to coagulate AES128 and + AES256 into a single algorithm bit, and to coagulate Camellia128 + and Camellia256 into a single algorithm bit, which has led to all + kinds of kludges. + + Thus, among other things, the kludge introduced in 0.9.7m and + 0.9.8e for masking out AES256 independently of AES128 or masking + out Camellia256 independently of AES256 is not needed here in 0.9.9. + + With the change, we also introduce new ciphersuite aliases that + so far were missing: "AES128", "AES256", "CAMELLIA128", and + "CAMELLIA256". + [Bodo Moeller] + + *) Add support for dsa-with-SHA224 and dsa-with-SHA256. + Use the leftmost N bytes of the signature input if the input is + larger than the prime q (with N being the size in bytes of q). + [Nils Larsch] + + *) Very *very* experimental PKCS#7 streaming encoder support. Nothing uses + it yet and it is largely untested. + [Steve Henson] + + *) Add support for the ecdsa-with-SHA224/256/384/512 signature types. + [Nils Larsch] + + *) Initial incomplete changes to avoid need for function casts in OpenSSL + some compilers (gcc 4.2 and later) reject their use. Safestack is + reimplemented. Update ASN1 to avoid use of legacy functions. + [Steve Henson] + + *) Win32/64 targets are linked with Winsock2. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 04:25:28 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 42861106566C for ; Thu, 14 Jun 2012 04:25:26 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 04:25:26 +0000 Date: Thu, 14 Jun 2012 04:25:26 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614042526.42861106566C@hub.freebsd.org> Cc: Subject: socsvn commit: r237652 - in soc2012/jhagewood/diff: . diff X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 04:25:28 -0000 Author: jhagewood Date: Thu Jun 14 04:25:25 2012 New Revision: 237652 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237652 Log: Modified: soc2012/jhagewood/diff/diff/diff.c soc2012/jhagewood/diff/diff/diffreg.c soc2012/jhagewood/diff/hagewood-diff.patch Modified: soc2012/jhagewood/diff/diff/diff.c ============================================================================== --- soc2012/jhagewood/diff/diff/diff.c Thu Jun 14 03:27:01 2012 (r237651) +++ soc2012/jhagewood/diff/diff/diff.c Thu Jun 14 04:25:25 2012 (r237652) @@ -48,7 +48,7 @@ int aflag, bflag, cflag, dflag, Eflag, iflag, lflag, Nflag, Pflag, pflag, rflag; int sflag, tflag, Tflag, wflag; int Bflag, yflag; -int strip_cr, tabsize=8; +int strip_cr, tabsize = 8; char ignore_file_case = 0; int format, context, status; char *start, *ifdefname, *diffargs, *label[2], *ignore_pats; @@ -58,7 +58,7 @@ int flag_opts = 0; -#define OPTIONS "0123456789aBbC:cdD:efhI:iL:lnNPpqrS:sTtU:uvwXy:x" +#define OPTIONS "0123456789aBbC:cdD:EefhI:iL:lnNPpqrS:sTtU:uvwXy:x" /* Options which exceed manageable alphanumeric assignments */ Modified: soc2012/jhagewood/diff/diff/diffreg.c ============================================================================== --- soc2012/jhagewood/diff/diff/diffreg.c Thu Jun 14 03:27:01 2012 (r237651) +++ soc2012/jhagewood/diff/diff/diffreg.c Thu Jun 14 04:25:25 2012 (r237652) @@ -748,12 +748,14 @@ static void check(char *file1, FILE *f1, char *file2, FILE *f2) { - int i, j, jackpot, c, d; - long ctold, ctnew; + int i, j, jackpot, c, d, spacetab; + long ctold, ctnew; + fpos_t position; rewind(f1); rewind(f2); j = 1; + spacetab = 1; ixold[0] = ixnew[0] = 0; jackpot = 0; ctold = ctnew = 0; @@ -820,24 +822,33 @@ } while ((d = getc(f2)) == '\n' && j <= len[1]); } break; - /* TODO : ignore-tab-expansion */ + /* ignore-tab-expansion */ } else if (Eflag) { if (c == '\t' && d == ' ') { - do { - if (c == '\t') { - ixold[i] = ctold; - i++; - } - } while ((c = getc(f1)) == '\t' && i <= len[0]); + fgetpos(f2, &position); + for (j = 1; j <= 7; j++) { + d = getc(f2); + if (d != " ") + spacetab = 0; + } + fsetpos(f2, &position); + if (spacetab) { + /* Ignore tab expression? */ + } } if (d == '\t' && c == ' ') { - do { - if (d == '\t') { - ixnew[j] = ctnew; - j++; - } - } while ((d = getc(f2)) == '\t' && j <= len[1]); + fgetpos(f2, &position); + for (j = 1; j <= 7; j++) { + d = getc(f2); + if (d != " ") + spacetab = 0; + } + fsetpos(f2, &position); + if (spacetab) { + /* Ignore tab expression? */ + } } + break; } if (chrtran[c] != chrtran[d]) { jackpot++; @@ -872,7 +883,7 @@ ixnew[j] = ctnew; j++; } - for (; j <= len[1]; j++) + for (j = 1; j <= len[1]; j++) ixnew[j] = ctnew += skipline(f2); /* * if (jackpot) Modified: soc2012/jhagewood/diff/hagewood-diff.patch ============================================================================== --- soc2012/jhagewood/diff/hagewood-diff.patch Thu Jun 14 03:27:01 2012 (r237651) +++ soc2012/jhagewood/diff/hagewood-diff.patch Thu Jun 14 04:25:25 2012 (r237652) @@ -1,7 +1,7 @@ diff -rupN jhagewood/diff/diff-orig/diff.c jhagewood/diff/diff/diff.c --- jhagewood/diff/diff-orig/diff.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diff.c 2012-06-13 05:07:54.000000000 -0400 -@@ -45,7 +45,7 @@ __FBSDID("$FreeBSD$"); ++++ jhagewood/diff/diff/diff.c 2012-06-14 04:01:37.000000000 -0400 +@@ -45,10 +45,10 @@ __FBSDID("$FreeBSD$"); #include "diff.h" #include "pathnames.h" @@ -9,7 +9,20 @@ +int aflag, bflag, cflag, dflag, Eflag, iflag, lflag, Nflag, Pflag, pflag, rflag; int sflag, tflag, Tflag, wflag; int Bflag, yflag; - int strip_cr, tabsize=8; +-int strip_cr, tabsize=8; ++int strip_cr, tabsize = 8; + char ignore_file_case = 0; + int format, context, status; + char *start, *ifdefname, *diffargs, *label[2], *ignore_pats; +@@ -58,7 +58,7 @@ regex_t ignore_re; + + int flag_opts = 0; + +-#define OPTIONS "0123456789aBbC:cdD:efhI:iL:lnNPpqrS:sTtU:uvwXy:x" ++#define OPTIONS "0123456789aBbC:cdD:EefhI:iL:lnNPpqrS:sTtU:uvwXy:x" + + + /* Options which exceed manageable alphanumeric assignments */ @@ -109,8 +109,7 @@ static struct option longopts[] = { { "context", optional_argument, NULL, 'C' }, { "ifdef", required_argument, NULL, 'D' }, @@ -69,8 +82,25 @@ extern int format, context, status; diff -rupN jhagewood/diff/diff-orig/diffreg.c jhagewood/diff/diff/diffreg.c --- jhagewood/diff/diff-orig/diffreg.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diffreg.c 2012-06-13 20:53:55.000000000 -0400 -@@ -766,7 +766,7 @@ check(char *file1, FILE *f1, char *file2 ++++ jhagewood/diff/diff/diffreg.c 2012-06-14 04:22:08.000000000 -0400 +@@ -748,12 +748,14 @@ unravel(int p) + static void + check(char *file1, FILE *f1, char *file2, FILE *f2) + { +- int i, j, jackpot, c, d; +- long ctold, ctnew; ++ int i, j, jackpot, c, d, spacetab; ++ long ctold, ctnew; ++ fpos_t position; + + rewind(f1); + rewind(f2); + j = 1; ++ spacetab = 1; + ixold[0] = ixnew[0] = 0; + jackpot = 0; + ctold = ctnew = 0; +@@ -766,7 +768,7 @@ check(char *file1, FILE *f1, char *file2 ixnew[j] = ctnew += skipline(f2); j++; } @@ -79,7 +109,7 @@ for (;;) { c = getc(f1); d = getc(f2); -@@ -803,28 +803,41 @@ check(char *file1, FILE *f1, char *file2 +@@ -803,27 +805,49 @@ check(char *file1, FILE *f1, char *file2 } } else if (Bflag) { @@ -106,29 +136,46 @@ - } - - break; -+ /* TODO : ignore-tab-expansion */ ++ break; ++ /* ignore-tab-expansion */ + } else if (Eflag) { + if (c == '\t' && d == ' ') { -+ do { -+ if (c == '\t') { -+ ixold[i] = ctold; -+ i++; -+ } -+ } while ((c = getc(f1)) == '\t' && i <= len[0]); ++ fgetpos(f2, &position); ++ for (j = 1; j <= 7; j++) { ++ d = getc(f2); ++ if (d != " ") ++ spacetab = 0; ++ } ++ fsetpos(f2, &position); ++ if (spacetab) { ++ /* Ignore tab expression? */ ++ } + } + if (d == '\t' && c == ' ') { -+ do { -+ if (d == '\t') { -+ ixnew[j] = ctnew; -+ j++; -+ } -+ } while ((d = getc(f2)) == '\t' && j <= len[1]); ++ fgetpos(f2, &position); ++ for (j = 1; j <= 7; j++) { ++ d = getc(f2); ++ if (d != " ") ++ spacetab = 0; ++ } ++ fsetpos(f2, &position); ++ if (spacetab) { ++ /* Ignore tab expression? */ ++ } + } + break; } if (chrtran[c] != chrtran[d]) { - jackpot++; -@@ -1551,16 +1564,33 @@ dump_unified_vec(FILE *f1, FILE *f2) +@@ -859,7 +883,7 @@ check(char *file1, FILE *f1, char *file2 + ixnew[j] = ctnew; + j++; + } +- for (; j <= len[1]; j++) ++ for (j = 1; j <= len[1]; j++) + ixnew[j] = ctnew += skipline(f2); + /* + * if (jackpot) +@@ -1551,16 +1575,33 @@ dump_unified_vec(FILE *f1, FILE *f2) static void print_header(const char *file1, const char *file2) { From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 04:52:23 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 74C771065672 for ; Thu, 14 Jun 2012 04:52:21 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 04:52:21 +0000 Date: Thu, 14 Jun 2012 04:52:21 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614045221.74C771065672@hub.freebsd.org> Cc: Subject: socsvn commit: r237653 - in soc2012/jhagewood/diff: . diff X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 04:52:23 -0000 Author: jhagewood Date: Thu Jun 14 04:52:20 2012 New Revision: 237653 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237653 Log: Modified: soc2012/jhagewood/diff/diff/diffreg.c soc2012/jhagewood/diff/hagewood-diff.patch Modified: soc2012/jhagewood/diff/diff/diffreg.c ============================================================================== --- soc2012/jhagewood/diff/diff/diffreg.c Thu Jun 14 04:25:25 2012 (r237652) +++ soc2012/jhagewood/diff/diff/diffreg.c Thu Jun 14 04:52:20 2012 (r237653) @@ -805,7 +805,7 @@ } } else if (Bflag) { - if(c == '\n' && d != '\n') { + if (c == '\n' && d != '\n') { do { if (c == '\n') { ixold[i] = ctold; @@ -837,13 +837,13 @@ } } if (d == '\t' && c == ' ') { - fgetpos(f2, &position); + fgetpos(f1, &position); for (j = 1; j <= 7; j++) { - d = getc(f2); - if (d != " ") + c = getc(f2); + if (c != " ") spacetab = 0; } - fsetpos(f2, &position); + fsetpos(f1, &position); if (spacetab) { /* Ignore tab expression? */ } Modified: soc2012/jhagewood/diff/hagewood-diff.patch ============================================================================== --- soc2012/jhagewood/diff/hagewood-diff.patch Thu Jun 14 04:25:25 2012 (r237652) +++ soc2012/jhagewood/diff/hagewood-diff.patch Thu Jun 14 04:52:20 2012 (r237653) @@ -82,7 +82,7 @@ extern int format, context, status; diff -rupN jhagewood/diff/diff-orig/diffreg.c jhagewood/diff/diff/diffreg.c --- jhagewood/diff/diff-orig/diffreg.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diffreg.c 2012-06-14 04:22:08.000000000 -0400 ++++ jhagewood/diff/diff/diffreg.c 2012-06-14 04:51:04.000000000 -0400 @@ -748,12 +748,14 @@ unravel(int p) static void check(char *file1, FILE *f1, char *file2, FILE *f2) @@ -115,7 +115,7 @@ } else if (Bflag) { - if( c == '\n' && d != '\n') { - -+ if(c == '\n' && d != '\n') { ++ if (c == '\n' && d != '\n') { do { if (c == '\n') { ixold[i] = ctold; @@ -152,13 +152,13 @@ + } + } + if (d == '\t' && c == ' ') { -+ fgetpos(f2, &position); ++ fgetpos(f1, &position); + for (j = 1; j <= 7; j++) { -+ d = getc(f2); -+ if (d != " ") ++ c = getc(f2); ++ if (c != " ") + spacetab = 0; + } -+ fsetpos(f2, &position); ++ fsetpos(f1, &position); + if (spacetab) { + /* Ignore tab expression? */ + } From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 04:59:43 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 632B41065676 for ; Thu, 14 Jun 2012 04:59:41 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 04:59:41 +0000 Date: Thu, 14 Jun 2012 04:59:41 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614045941.632B41065676@hub.freebsd.org> Cc: Subject: socsvn commit: r237654 - soc2012/jhagewood/diff X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 04:59:43 -0000 Author: jhagewood Date: Thu Jun 14 04:59:41 2012 New Revision: 237654 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237654 Log: Modified: soc2012/jhagewood/diff/hagewood-diff.patch Modified: soc2012/jhagewood/diff/hagewood-diff.patch ============================================================================== --- soc2012/jhagewood/diff/hagewood-diff.patch Thu Jun 14 04:52:20 2012 (r237653) +++ soc2012/jhagewood/diff/hagewood-diff.patch Thu Jun 14 04:59:41 2012 (r237654) @@ -82,7 +82,7 @@ extern int format, context, status; diff -rupN jhagewood/diff/diff-orig/diffreg.c jhagewood/diff/diff/diffreg.c --- jhagewood/diff/diff-orig/diffreg.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diffreg.c 2012-06-14 04:51:04.000000000 -0400 ++++ jhagewood/diff/diff/diffreg.c 2012-06-14 04:59:34.000000000 -0400 @@ -748,12 +748,14 @@ unravel(int p) static void check(char *file1, FILE *f1, char *file2, FILE *f2) From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 05:33:02 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 7854F106566B for ; Thu, 14 Jun 2012 05:33:00 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 05:33:00 +0000 Date: Thu, 14 Jun 2012 05:33:00 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614053300.7854F106566B@hub.freebsd.org> Cc: Subject: socsvn commit: r237662 - in soc2012/jhagewood/diff3: . diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 05:33:02 -0000 Author: jhagewood Date: Thu Jun 14 05:32:59 2012 New Revision: 237662 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237662 Log: Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c ============================================================================== --- soc2012/jhagewood/diff3/diff3/diff3prog.c Thu Jun 14 04:24:13 2012 (r237661) +++ soc2012/jhagewood/diff3/diff3/diff3prog.c Thu Jun 14 05:32:59 2012 (r237662) @@ -85,10 +85,6 @@ #include #include -#ifdef __FreeBSD__ -#define __dead -#endif - /* diff3 - 3-way differential file comparison */ /* diff3 [-ex3EX] d13 d23 f1 f2 f3 [m1 m3] @@ -143,26 +139,26 @@ int debug = 0; char f1mark[40], f2mark[40], f3mark[40]; /* markers for -E and -X */ -int duplicate(struct range *, struct range *); -int edit(struct diff *, int, int); -char *getchange(FILE *); -char *getline(FILE *, size_t *); -int number(char **); -int readin(char *, struct diff **); -int skip(int, int, char *); -void change(int, struct range *, int); -void keep(int, struct range *); -void merge(int, int); +static int duplicate(struct range *, struct range *); +static int edit(struct diff *, int, int); +static char *getchange(FILE *); +static char *getline(FILE *, size_t *); +static int number(char **); +static int readin(char *, struct diff **); +static int skip(int, int, char *); +static void change(int, struct range *, int); +static void keep(int, struct range *); +static void merge(int, int); static int asciifile(FILE *); -void prange(struct range *); -void repos(int); -void separate(const char *); -__dead void edscript(int); -void remove_cr(FILE *); -__dead void trouble(void); -void increase(void); -void help(void); -__dead void usage(void); +static void prange(struct range *); +static void repos(int); +static void separate(const char *); +static __dead2 edscript(int); +static void remove_cr(FILE *); +static __dead2 trouble(void); +static void increase(void); +static void help(void); +static __dead2 usage(void); enum { HELP_OPT = CHAR_MAX + 1, @@ -170,6 +166,10 @@ DIFFPROG_OPT, }; +#ifdef __FreeBSD__ +#define __dead2 +#endif + #define OPTIONS "3aAeEiL:mTvxX" static struct option longopts[] = { { "ed", no_argument, NULL, 'e' }, @@ -648,7 +648,7 @@ rewind(f); } -__dead void +__dead2 trouble(void) { @@ -676,7 +676,7 @@ } /* regurgitate */ -__dead void +__dead2 edscript(int n) { int j, k; @@ -761,7 +761,7 @@ } -__dead void +__dead2 usage(void) { Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Thu Jun 14 04:24:13 2012 (r237661) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Thu Jun 14 05:32:59 2012 (r237662) @@ -10,9 +10,9 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c ---- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-13 19:37:44.000000000 -0400 -@@ -64,22 +64,31 @@ +--- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-14 05:32:21.000000000 -0400 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-14 05:31:22.000000000 -0400 +@@ -64,19 +64,24 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ @@ -44,22 +44,47 @@ #include #include -+#ifdef __FreeBSD__ -+#define __dead -+#endif -+ - /* diff3 - 3-way differential file comparison */ - - /* diff3 [-ex3EX] d13 d23 f1 f2 f3 [m1 m3] -@@ -149,33 +158,37 @@ void prange(struct range *); - void repos(int); - void separate(const char *); - __dead void edscript(int); -+void remove_cr(FILE *); - __dead void trouble(void); - void increase(void); -+void help(void); - __dead void usage(void); +@@ -134,48 +139,56 @@ int strip_cr; + int debug = 0; + char f1mark[40], f2mark[40], f3mark[40]; /* markers for -E and -X */ + +-int duplicate(struct range *, struct range *); +-int edit(struct diff *, int, int); +-char *getchange(FILE *); +-char *getline(FILE *, size_t *); +-int number(char **); +-int readin(char *, struct diff **); +-int skip(int, int, char *); +-void change(int, struct range *, int); +-void keep(int, struct range *); +-void merge(int, int); ++static int duplicate(struct range *, struct range *); ++static int edit(struct diff *, int, int); ++static char *getchange(FILE *); ++static char *getline(FILE *, size_t *); ++static int number(char **); ++static int readin(char *, struct diff **); ++static int skip(int, int, char *); ++static void change(int, struct range *, int); ++static void keep(int, struct range *); ++static void merge(int, int); + static int asciifile(FILE *); +-void prange(struct range *); +-void repos(int); +-void separate(const char *); +-__dead void edscript(int); +-__dead void trouble(void); +-void increase(void); +-__dead void usage(void); ++static void prange(struct range *); ++static void repos(int); ++static void separate(const char *); ++static __dead2 edscript(int); ++static void remove_cr(FILE *); ++static __dead2 trouble(void); ++static void increase(void); ++static void help(void); ++static __dead2 usage(void); enum { HELP_OPT = CHAR_MAX + 1, @@ -68,6 +93,10 @@ + DIFFPROG_OPT, }; ++#ifdef __FreeBSD__ ++#define __dead2 ++#endif ++ #define OPTIONS "3aAeEiL:mTvxX" static struct option longopts[] = { - { "ed", no_argument, NULL, 'e' }, @@ -176,12 +205,12 @@ { - wint_t ch = L'\0'; - size_t i; +- +- if (aflag || f == NULL) +- return (1); + wint_t ch = L'\0'; + size_t i; -- if (aflag || f == NULL) -- return (1); -- - rewind(f); - errno = 0; - for (i = 0; i <= BUFSIZ; i++) { @@ -263,6 +292,7 @@ (void)fseek(fp[i], (long)-nchar, SEEK_CUR); } +-__dead void +/* If file has trailing carriage return, remove it. */ +void +remove_cr(FILE *f) @@ -286,7 +316,7 @@ + rewind(f); +} + - __dead void ++__dead2 trouble(void) { + @@ -301,8 +331,12 @@ if (((dup + 1) & eflag) == 0) return (j); j++; -@@ -635,7 +679,7 @@ edit(struct diff *diff, int dup, int j) - __dead void +@@ -632,10 +676,10 @@ edit(struct diff *diff, int dup, int j) + } + + /* regurgitate */ +-__dead void ++__dead2 edscript(int n) { - int j,k; @@ -344,7 +378,8 @@ + +} - __dead void +-__dead void ++__dead2 usage(void) { - extern char *__progname; From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 06:12:02 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 7B63C1065670 for ; Thu, 14 Jun 2012 06:12:00 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 06:12:00 +0000 Date: Thu, 14 Jun 2012 06:12:00 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614061200.7B63C1065670@hub.freebsd.org> Cc: Subject: socsvn commit: r237663 - in soc2012/jhagewood/diff3: . diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 06:12:02 -0000 Author: jhagewood Date: Thu Jun 14 06:11:59 2012 New Revision: 237663 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237663 Log: Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c ============================================================================== --- soc2012/jhagewood/diff3/diff3/diff3prog.c Thu Jun 14 05:32:59 2012 (r237662) +++ soc2012/jhagewood/diff3/diff3/diff3prog.c Thu Jun 14 06:11:59 2012 (r237663) @@ -64,6 +64,9 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ +#ifdef __FreeBSD__ +#define __dead2 +#endif #if 0 #ifndef lint @@ -153,12 +156,12 @@ static void prange(struct range *); static void repos(int); static void separate(const char *); -static __dead2 edscript(int); +static void edscript(int) __dead2; static void remove_cr(FILE *); -static __dead2 trouble(void); +static void trouble(void) __dead2; static void increase(void); static void help(void); -static __dead2 usage(void); +static void usage(void) __dead2; enum { HELP_OPT = CHAR_MAX + 1, @@ -166,10 +169,6 @@ DIFFPROG_OPT, }; -#ifdef __FreeBSD__ -#define __dead2 -#endif - #define OPTIONS "3aAeEiL:mTvxX" static struct option longopts[] = { { "ed", no_argument, NULL, 'e' }, @@ -230,7 +229,7 @@ oflag = eflag = 1; break; case 'v': - printf("OpenBSD diff3 1.11-FreeBSD",); + printf("OpenBSD diff3 1.11-FreeBSD"); exit(0); case 'x': eflag = 1; @@ -648,7 +647,7 @@ rewind(f); } -__dead2 +void trouble(void) { @@ -676,7 +675,7 @@ } /* regurgitate */ -__dead2 +void edscript(int n) { int j, k; @@ -745,23 +744,22 @@ help(void) { - printf ("%s", "\ - -e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE.\n\ - -A --show-all Output all changes, bracketing conflicts.\n\ - -x --overlap-only Output overlapping changes.\n\ - -3 --easy-only Output unmerged nonoverlapping changes.\n\n"); - printf ("%s", "\ - -m --merge Output merged file instead of ed script (default -A).\n\ - -L LABEL --label=LABEL Use LABEL instead of file name.\n\ - -a --text Treat all files as text.\n\ - -T --initial-tab Make tabs line up by prepending a tab.\n\n"); - printf ("%s", "\ - -v --version Output version info.\n\ - --help Output this help.\n\n"); - + printf("%s%s%s%s", + "\t-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE.\n", + "\t-A --show-all Output all changes, bracketing conflicts.\n", + "\t-x --overlap-only Output overlapping changes.\n", + "\t-3 --easy-only Output unmerged nonoverlapping changes.\n\n"); + printf("%s%s%s%s", + "\t-m --merge Output merged file instead of ed script (default -A).\n", + "\t-L LABEL --label=LABEL Use LABEL instead of file name.\n", + "\t-a --text Treat all files as text.\n", + "\t-T --initial-tab Make tabs line up by prepending a tab.\n\n"); + printf("%s%s", + "\t-v --version Output version info.\n", + "\t--help Output this help.\n\n"); } -__dead2 +void usage(void) { Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Thu Jun 14 05:32:59 2012 (r237662) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Thu Jun 14 06:11:59 2012 (r237663) @@ -11,22 +11,23 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-14 05:32:21.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-14 05:31:22.000000000 -0400 -@@ -64,19 +64,24 @@ - * @(#)diff3.c 8.1 (Berkeley) 6/6/93 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-14 06:08:56.000000000 -0400 +@@ -65,18 +65,26 @@ */ --#ifdef __FreeBSD__ + #ifdef __FreeBSD__ -#define __dead -+ ++#define __dead2 + #endif + +#if 0 +#ifndef lint +static char sccsid[] = "@(#)diff3.c 8.1 (Berkeley) 6/6/93"; - #endif ++#endif +#endif /* not lint */ +#include -+__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237623 2012-06-13 19:37:41Z jhagewood $"); - ++__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237662 2012-06-14 05:32:59Z jhagewood $"); ++ +#include +#include +#include @@ -44,7 +45,7 @@ #include #include -@@ -134,48 +139,56 @@ int strip_cr; +@@ -134,48 +142,52 @@ int strip_cr; int debug = 0; char f1mark[40], f2mark[40], f3mark[40]; /* markers for -E and -X */ @@ -79,12 +80,12 @@ +static void prange(struct range *); +static void repos(int); +static void separate(const char *); -+static __dead2 edscript(int); ++static void edscript(int) __dead2; +static void remove_cr(FILE *); -+static __dead2 trouble(void); ++static void trouble(void) __dead2; +static void increase(void); +static void help(void); -+static __dead2 usage(void); ++static void usage(void) __dead2; enum { HELP_OPT = CHAR_MAX + 1, @@ -93,10 +94,6 @@ + DIFFPROG_OPT, }; -+#ifdef __FreeBSD__ -+#define __dead2 -+#endif -+ #define OPTIONS "3aAeEiL:mTvxX" static struct option longopts[] = { - { "ed", no_argument, NULL, 'e' }, @@ -124,12 +121,12 @@ }; -@@ -216,12 +229,18 @@ main(int argc, char **argv) +@@ -216,12 +228,18 @@ main(int argc, char **argv) case 'X': oflag = eflag = 1; break; + case 'v': -+ printf("OpenBSD diff3 1.11-FreeBSD",); ++ printf("OpenBSD diff3 1.11-FreeBSD"); + exit(0); case 'x': eflag = 1; @@ -143,7 +140,7 @@ case STRIPCR_OPT: strip_cr = 1; break; -@@ -233,27 +252,25 @@ main(int argc, char **argv) +@@ -233,27 +251,25 @@ main(int argc, char **argv) argc -= optind; argv += optind; /* XXX - argc usage seems wrong here */ @@ -181,7 +178,7 @@ } merge(m, n); exit(EXIT_SUCCESS); -@@ -311,6 +328,7 @@ int +@@ -311,6 +327,7 @@ int number(char **lc) { int nn; @@ -189,7 +186,7 @@ nn = 0; while (isdigit((unsigned char)(**lc))) nn = nn*10 + *(*lc)++ - '0'; -@@ -367,8 +385,7 @@ merge(int m1, int m2) +@@ -367,8 +384,7 @@ merge(int m1, int m2) d2 = d23; j = 0; @@ -199,7 +196,7 @@ printf("Binary file detected; comparison failed\n"); exit(EXIT_FAILURE); } -@@ -466,29 +483,29 @@ merge(int m1, int m2) +@@ -466,29 +482,29 @@ merge(int m1, int m2) static int asciifile(FILE *f) { @@ -246,7 +243,7 @@ printf("====%s\n", s); } -@@ -500,6 +517,7 @@ separate(const char *s) +@@ -500,6 +516,7 @@ separate(const char *s) void change(int i, struct range *rold, int dup) { @@ -254,7 +251,7 @@ printf("%d:", i); last[i] = rold->to; prange(rold); -@@ -510,12 +528,14 @@ change(int i, struct range *rold, int du +@@ -510,12 +527,14 @@ change(int i, struct range *rold, int du (void)skip(i, rold->to, " "); } @@ -271,7 +268,7 @@ if (rold->to <= rold->from) printf("%da\n", rold->from - 1); else { -@@ -558,7 +578,6 @@ skip(int i, int from, char *pr) +@@ -558,7 +577,6 @@ skip(int i, int from, char *pr) trouble(); if (pr != NULL) printf("%s%s", Tflag == 1? "\t" : pr, line); @@ -279,7 +276,7 @@ cline[i]++; } return ((int) n); -@@ -571,7 +590,7 @@ skip(int i, int from, char *pr) +@@ -571,7 +589,7 @@ skip(int i, int from, char *pr) int duplicate(struct range *r1, struct range *r2) { @@ -288,7 +285,7 @@ int nchar; int nline; -@@ -606,9 +625,33 @@ repos(int nchar) +@@ -606,9 +624,33 @@ repos(int nchar) (void)fseek(fp[i], (long)-nchar, SEEK_CUR); } @@ -316,14 +313,14 @@ + rewind(f); +} + -+__dead2 ++void trouble(void) { + errx(EXIT_FAILURE, "logic error"); } -@@ -618,6 +661,7 @@ trouble(void) +@@ -618,6 +660,7 @@ trouble(void) int edit(struct diff *diff, int dup, int j) { @@ -331,12 +328,12 @@ if (((dup + 1) & eflag) == 0) return (j); j++; -@@ -632,10 +676,10 @@ edit(struct diff *diff, int dup, int j) +@@ -632,10 +675,10 @@ edit(struct diff *diff, int dup, int j) } /* regurgitate */ -__dead void -+__dead2 ++void edscript(int n) { - int j,k; @@ -344,7 +341,7 @@ char block[BUFSIZ]; for (n = n; n > 0; n--) { -@@ -657,8 +701,7 @@ edscript(int n) +@@ -657,8 +700,7 @@ edscript(int n) printf("%da\n%s\n.\n", de[n].old.from - 1, f1mark); } } @@ -354,7 +351,7 @@ printf("w\nq\n"); exit(overlapcnt); -@@ -698,13 +741,30 @@ increase(void) +@@ -698,13 +740,29 @@ increase(void) szchanges = newsz; } @@ -362,24 +359,23 @@ +help(void) +{ + -+ printf ("%s", "\ -+ -e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE.\n\ -+ -A --show-all Output all changes, bracketing conflicts.\n\ -+ -x --overlap-only Output overlapping changes.\n\ -+ -3 --easy-only Output unmerged nonoverlapping changes.\n\n"); -+ printf ("%s", "\ -+ -m --merge Output merged file instead of ed script (default -A).\n\ -+ -L LABEL --label=LABEL Use LABEL instead of file name.\n\ -+ -a --text Treat all files as text.\n\ -+ -T --initial-tab Make tabs line up by prepending a tab.\n\n"); -+ printf ("%s", "\ -+ -v --version Output version info.\n\ -+ --help Output this help.\n\n"); -+ ++ printf("%s%s%s%s", ++ "\t-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE.\n", ++ "\t-A --show-all Output all changes, bracketing conflicts.\n", ++ "\t-x --overlap-only Output overlapping changes.\n", ++ "\t-3 --easy-only Output unmerged nonoverlapping changes.\n\n"); ++ printf("%s%s%s%s", ++ "\t-m --merge Output merged file instead of ed script (default -A).\n", ++ "\t-L LABEL --label=LABEL Use LABEL instead of file name.\n", ++ "\t-a --text Treat all files as text.\n", ++ "\t-T --initial-tab Make tabs line up by prepending a tab.\n\n"); ++ printf("%s%s", ++ "\t-v --version Output version info.\n", ++ "\t--help Output this help.\n\n"); +} -__dead void -+__dead2 ++void usage(void) { - extern char *__progname; From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 07:45:12 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 4696B1065670 for ; Thu, 14 Jun 2012 07:45:11 +0000 (UTC) (envelope-from syuu@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 07:45:11 +0000 Date: Thu, 14 Jun 2012 07:45:11 +0000 From: syuu@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614074511.4696B1065670@hub.freebsd.org> Cc: Subject: socsvn commit: r237669 - soc2012/syuu/bhyve-bios/usr.sbin/bhyve X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 07:45:12 -0000 Author: syuu Date: Thu Jun 14 07:45:10 2012 New Revision: 237669 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237669 Log: adding bios compatible mode Modified: soc2012/syuu/bhyve-bios/usr.sbin/bhyve/fbsdrun.c Modified: soc2012/syuu/bhyve-bios/usr.sbin/bhyve/fbsdrun.c ============================================================================== --- soc2012/syuu/bhyve-bios/usr.sbin/bhyve/fbsdrun.c Thu Jun 14 06:55:40 2012 (r237668) +++ soc2012/syuu/bhyve-bios/usr.sbin/bhyve/fbsdrun.c Thu Jun 14 07:45:10 2012 (r237669) @@ -99,6 +99,8 @@ static void *oem_tbl_start; static int oem_tbl_size; +static int bios_mode; + static void vm_loop(struct vmctx *ctx, int vcpu, uint64_t rip); struct vm_exit vmexit[VM_MAXCPU]; @@ -126,7 +128,7 @@ { fprintf(stderr, - "Usage: %s [-ehBHP][-g ][-z ][-s ][-p pincpu]" + "Usage: %s [-ehBHPb][-g ][-z ][-s ][-p pincpu]" "[-n ][-m lowmem][-M highmem] \n" " -g: gdb port (default is %d and 0 means don't open)\n" " -c: # cpus (default 1)\n" @@ -143,7 +145,8 @@ " -m: lowmem in MB\n" " -M: highmem in MB\n" " -x: mux vcpus to 1 hcpu\n" - " -t: mux vcpu timeslice hz (default %d)\n", + " -t: mux vcpu timeslice hz (default %d)\n" + " -b: BIOS compatible mode\n", progname, DEFAULT_GDB_PORT, DEFAULT_GUEST_HZ, DEFAULT_GUEST_TSLICE); exit(code); @@ -429,6 +432,15 @@ return (VMEXIT_CONTINUE); } +static int +vmexit_vmcall(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu) +{ + printf("VMCALL handled\n"); + exit(1); + + return (VMEXIT_RESTART); +} + static void sigalrm(int sig) { @@ -469,7 +481,8 @@ [VM_EXITCODE_RDMSR] = vmexit_rdmsr, [VM_EXITCODE_WRMSR] = vmexit_wrmsr, [VM_EXITCODE_MTRAP] = vmexit_mtrap, - [VM_EXITCODE_PAGING] = vmexit_paging + [VM_EXITCODE_PAGING] = vmexit_paging, + [VM_EXITCODE_VMCALL] = vmexit_vmcall, }; static void @@ -531,7 +544,7 @@ gdb_port = DEFAULT_GDB_PORT; guest_ncpus = 1; - while ((c = getopt(argc, argv, "ehBHPxp:g:c:z:s:S:n:m:M:")) != -1) { + while ((c = getopt(argc, argv, "ehBHPxbp:g:c:z:s:S:n:m:M:")) != -1) { switch (c) { case 'B': inject_bkpt = 1; @@ -578,6 +591,9 @@ case 'e': strictio = 1; break; + case 'b': + bios_mode = 1; + break; case 'h': usage(0); default: @@ -644,6 +660,10 @@ } } + if (bios_mode != 0) { + vm_set_capability(ctx, BSP, VM_CAP_UNRESTRICTED_GUEST, 1); + } + init_inout(); init_pci(ctx); From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 07:45:50 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 221531065675 for ; Thu, 14 Jun 2012 07:45:48 +0000 (UTC) (envelope-from syuu@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 07:45:48 +0000 Date: Thu, 14 Jun 2012 07:45:48 +0000 From: syuu@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614074548.221531065675@hub.freebsd.org> Cc: Subject: socsvn commit: r237670 - soc2012/syuu/bhyve-bios/usr.sbin/vmmctl X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 07:45:50 -0000 Author: syuu Date: Thu Jun 14 07:45:47 2012 New Revision: 237670 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237670 Log: added --get-all option Modified: soc2012/syuu/bhyve-bios/usr.sbin/vmmctl/vmmctl.c Modified: soc2012/syuu/bhyve-bios/usr.sbin/vmmctl/vmmctl.c ============================================================================== --- soc2012/syuu/bhyve-bios/usr.sbin/vmmctl/vmmctl.c Thu Jun 14 07:45:10 2012 (r237669) +++ soc2012/syuu/bhyve-bios/usr.sbin/vmmctl/vmmctl.c Thu Jun 14 07:45:47 2012 (r237670) @@ -245,6 +245,8 @@ static uint64_t desc_base; static uint32_t desc_limit, desc_access; +static int get_all; + static void dump_vm_run_exitcode(struct vm_exit *vmexit, int vcpu) { @@ -486,6 +488,7 @@ { "get-vmcs-guest-linear-address", NO_ARG, &get_vmcs_gla, 1 }, { "get-vmcs-guest-physical-address", + NO_ARG, &get_vmcs_gpa, 1 }, { "get-vmcs-entry-interruption-info", NO_ARG, &get_vmcs_entry_interruption_info, 1}, @@ -544,6 +547,7 @@ { "get-vmcs-interruptibility", NO_ARG, &get_vmcs_interruptibility, 1 }, { "get-pinning",NO_ARG, &get_pinning, 1 }, + { "get-all", NO_ARG, &get_all, 1 }, { "run", NO_ARG, &run, 1 }, { "create", NO_ARG, &create, 1 }, { "destroy", NO_ARG, &destroy, 1 }, @@ -810,158 +814,158 @@ vmcs_entry_interruption_info); } - if (!error && get_lowmem) { + if (!error && (get_lowmem | get_all)) { error = vm_get_memory_seg(ctx, 0, &hpa, &len); if (error == 0) printf("lowmem\t\t0x%016lx/%ld\n", hpa, len); } - if (!error && get_highmem) { + if (!error && (get_highmem | get_all)) { error = vm_get_memory_seg(ctx, 4 * GB, &hpa, &len); if (error == 0) printf("highmem\t\t0x%016lx/%ld\n", hpa, len); } - if (!error && get_efer) { + if (!error && (get_efer | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_EFER, &efer); if (error == 0) printf("efer[%d]\t\t0x%016lx\n", vcpu, efer); } - if (!error && get_cr0) { + if (!error && (get_cr0 | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_CR0, &cr0); if (error == 0) printf("cr0[%d]\t\t0x%016lx\n", vcpu, cr0); } - if (!error && get_cr3) { + if (!error && (get_cr3 | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_CR3, &cr3); if (error == 0) printf("cr3[%d]\t\t0x%016lx\n", vcpu, cr3); } - if (!error && get_cr4) { + if (!error && (get_cr4 | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_CR4, &cr4); if (error == 0) printf("cr4[%d]\t\t0x%016lx\n", vcpu, cr4); } - if (!error && get_dr7) { + if (!error && (get_dr7 | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_DR7, &dr7); if (error == 0) printf("dr7[%d]\t\t0x%016lx\n", vcpu, dr7); } - if (!error && get_rsp) { + if (!error && (get_rsp | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RSP, &rsp); if (error == 0) printf("rsp[%d]\t\t0x%016lx\n", vcpu, rsp); } - if (!error && get_rip) { + if (!error && (get_rip | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RIP, &rip); if (error == 0) printf("rip[%d]\t\t0x%016lx\n", vcpu, rip); } - if (!error && get_rax) { + if (!error && (get_rax | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RAX, &rax); if (error == 0) printf("rax[%d]\t\t0x%016lx\n", vcpu, rax); } - if (!error && get_rbx) { + if (!error && (get_rbx | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RBX, &rbx); if (error == 0) printf("rbx[%d]\t\t0x%016lx\n", vcpu, rbx); } - if (!error && get_rcx) { + if (!error && (get_rcx | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RCX, &rcx); if (error == 0) printf("rcx[%d]\t\t0x%016lx\n", vcpu, rcx); } - if (!error && get_rdx) { + if (!error && (get_rdx | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RDX, &rdx); if (error == 0) printf("rdx[%d]\t\t0x%016lx\n", vcpu, rdx); } - if (!error && get_rsi) { + if (!error && (get_rsi | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RSI, &rsi); if (error == 0) printf("rsi[%d]\t\t0x%016lx\n", vcpu, rsi); } - if (!error && get_rdi) { + if (!error && (get_rdi | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RDI, &rdi); if (error == 0) printf("rdi[%d]\t\t0x%016lx\n", vcpu, rdi); } - if (!error && get_rbp) { + if (!error && (get_rbp | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RBP, &rbp); if (error == 0) printf("rbp[%d]\t\t0x%016lx\n", vcpu, rbp); } - if (!error && get_r8) { + if (!error && (get_r8 | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R8, &r8); if (error == 0) printf("r8[%d]\t\t0x%016lx\n", vcpu, r8); } - if (!error && get_r9) { + if (!error && (get_r9 | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R9, &r9); if (error == 0) printf("r9[%d]\t\t0x%016lx\n", vcpu, r9); } - if (!error && get_r10) { + if (!error && (get_r10 | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R10, &r10); if (error == 0) printf("r10[%d]\t\t0x%016lx\n", vcpu, r10); } - if (!error && get_r11) { + if (!error && (get_r11 | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R11, &r11); if (error == 0) printf("r11[%d]\t\t0x%016lx\n", vcpu, r11); } - if (!error && get_r12) { + if (!error && (get_r12 | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R12, &r12); if (error == 0) printf("r12[%d]\t\t0x%016lx\n", vcpu, r12); } - if (!error && get_r13) { + if (!error && (get_r13 | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R13, &r13); if (error == 0) printf("r13[%d]\t\t0x%016lx\n", vcpu, r13); } - if (!error && get_r14) { + if (!error && (get_r14 | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R14, &r14); if (error == 0) printf("r14[%d]\t\t0x%016lx\n", vcpu, r14); } - if (!error && get_r15) { + if (!error && (get_r15 | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_R15, &r15); if (error == 0) printf("r15[%d]\t\t0x%016lx\n", vcpu, r15); } - if (!error && get_rflags) { + if (!error && (get_rflags | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_RFLAGS, &rflags); if (error == 0) printf("rflags[%d]\t0x%016lx\n", vcpu, rflags); } - if (!error && get_stats) { + if (!error && (get_stats | get_all)) { int i, num_stats; uint64_t *stats; struct timeval tv; @@ -977,7 +981,7 @@ } } - if (!error && get_desc_ds) { + if (!error && (get_desc_ds | get_all)) { error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_DS, &desc_base, &desc_limit, &desc_access); if (error == 0) { @@ -986,7 +990,7 @@ } } - if (!error && get_desc_es) { + if (!error && (get_desc_es | get_all)) { error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_ES, &desc_base, &desc_limit, &desc_access); if (error == 0) { @@ -995,7 +999,7 @@ } } - if (!error && get_desc_fs) { + if (!error && (get_desc_fs | get_all)) { error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_FS, &desc_base, &desc_limit, &desc_access); if (error == 0) { @@ -1004,7 +1008,7 @@ } } - if (!error && get_desc_gs) { + if (!error && (get_desc_gs | get_all)) { error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_GS, &desc_base, &desc_limit, &desc_access); if (error == 0) { @@ -1013,7 +1017,7 @@ } } - if (!error && get_desc_ss) { + if (!error && (get_desc_ss | get_all)) { error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_SS, &desc_base, &desc_limit, &desc_access); if (error == 0) { @@ -1022,7 +1026,7 @@ } } - if (!error && get_desc_cs) { + if (!error && (get_desc_cs | get_all)) { error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_CS, &desc_base, &desc_limit, &desc_access); if (error == 0) { @@ -1031,7 +1035,7 @@ } } - if (!error && get_desc_tr) { + if (!error && (get_desc_tr | get_all)) { error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_TR, &desc_base, &desc_limit, &desc_access); if (error == 0) { @@ -1040,7 +1044,7 @@ } } - if (!error && get_desc_ldtr) { + if (!error && (get_desc_ldtr | get_all)) { error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_LDTR, &desc_base, &desc_limit, &desc_access); if (error == 0) { @@ -1049,7 +1053,7 @@ } } - if (!error && get_desc_gdtr) { + if (!error && (get_desc_gdtr | get_all)) { error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_GDTR, &desc_base, &desc_limit, &desc_access); if (error == 0) { @@ -1058,7 +1062,7 @@ } } - if (!error && get_desc_idtr) { + if (!error && (get_desc_idtr | get_all)) { error = vm_get_desc(ctx, vcpu, VM_REG_GUEST_IDTR, &desc_base, &desc_limit, &desc_access); if (error == 0) { @@ -1067,55 +1071,55 @@ } } - if (!error && get_cs) { + if (!error && (get_cs | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_CS, &cs); if (error == 0) printf("cs[%d]\t\t0x%04lx\n", vcpu, cs); } - if (!error && get_ds) { + if (!error && (get_ds | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_DS, &ds); if (error == 0) printf("ds[%d]\t\t0x%04lx\n", vcpu, ds); } - if (!error && get_es) { + if (!error && (get_es | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_ES, &es); if (error == 0) printf("es[%d]\t\t0x%04lx\n", vcpu, es); } - if (!error && get_fs) { + if (!error && (get_fs | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_FS, &fs); if (error == 0) printf("fs[%d]\t\t0x%04lx\n", vcpu, fs); } - if (!error && get_gs) { + if (!error && (get_gs | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_GS, &gs); if (error == 0) printf("gs[%d]\t\t0x%04lx\n", vcpu, gs); } - if (!error && get_ss) { + if (!error && (get_ss | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_SS, &ss); if (error == 0) printf("ss[%d]\t\t0x%04lx\n", vcpu, ss); } - if (!error && get_tr) { + if (!error && (get_tr | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_TR, &tr); if (error == 0) printf("tr[%d]\t\t0x%04lx\n", vcpu, tr); } - if (!error && get_ldtr) { + if (!error && (get_ldtr | get_all)) { error = vm_get_register(ctx, vcpu, VM_REG_GUEST_LDTR, &ldtr); if (error == 0) printf("ldtr[%d]\t\t0x%04lx\n", vcpu, ldtr); } - if (!error && get_pinning) { + if (!error && (get_pinning | get_all)) { error = vm_get_pinning(ctx, vcpu, &pincpu); if (error == 0) { if (pincpu < 0) @@ -1125,41 +1129,41 @@ } } - if (!error && get_pinbased_ctls) { + if (!error && (get_pinbased_ctls | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_PIN_BASED_CTLS, &ctl); if (error == 0) printf("pinbased_ctls[%d]\t0x%08lx\n", vcpu, ctl); } - if (!error && get_procbased_ctls) { + if (!error && (get_procbased_ctls | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_PRI_PROC_BASED_CTLS, &ctl); if (error == 0) printf("procbased_ctls[%d]\t0x%08lx\n", vcpu, ctl); } - if (!error && get_procbased_ctls2) { + if (!error && (get_procbased_ctls2 | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_SEC_PROC_BASED_CTLS, &ctl); if (error == 0) printf("procbased_ctls2[%d]\t0x%08lx\n", vcpu, ctl); } - if (!error && get_vmcs_gla) { + if (!error && (get_vmcs_gla | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_GUEST_LINEAR_ADDRESS, &u64); if (error == 0) printf("gla[%d]\t\t0x%016lx\n", vcpu, u64); } - if (!error && get_vmcs_gpa) { + if (!error && (get_vmcs_gpa | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_GUEST_PHYSICAL_ADDRESS, &u64); if (error == 0) printf("gpa[%d]\t\t0x%016lx\n", vcpu, u64); } - if (!error && get_vmcs_entry_interruption_info) { + if (!error && (get_vmcs_entry_interruption_info | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_ENTRY_INTR_INFO,&u64); if (error == 0) { printf("entry_interruption_info[%d]\t0x%08lx\n", @@ -1167,20 +1171,20 @@ } } - if (!error && get_eptp) { + if (!error && (get_eptp | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_EPTP, &eptp); if (error == 0) printf("eptp[%d]\t\t0x%016lx\n", vcpu, eptp); } - if (!error && get_exception_bitmap) { + if (!error && (get_exception_bitmap | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXCEPTION_BITMAP, &bm); if (error == 0) printf("exception_bitmap[%d]\t0x%08lx\n", vcpu, bm); } - if (!error && get_io_bitmap) { + if (!error && (get_io_bitmap | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_IO_BITMAP_A, &bm); if (error == 0) printf("io_bitmap_a[%d]\t0x%08lx\n", vcpu, bm); @@ -1189,21 +1193,21 @@ printf("io_bitmap_b[%d]\t0x%08lx\n", vcpu, bm); } - if (!error && get_tsc_offset) { + if (!error && (get_tsc_offset | get_all)) { uint64_t tscoff; error = vm_get_vmcs_field(ctx, vcpu, VMCS_TSC_OFFSET, &tscoff); if (error == 0) printf("tsc_offset[%d]\t0x%016lx\n", vcpu, tscoff); } - if (!error && get_cr0_mask) { + if (!error && (get_cr0_mask | get_all)) { uint64_t cr0mask; error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR0_MASK, &cr0mask); if (error == 0) printf("cr0_mask[%d]\t\t0x%016lx\n", vcpu, cr0mask); } - if (!error && get_cr0_shadow) { + if (!error && (get_cr0_shadow | get_all)) { uint64_t cr0shadow; error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR0_SHADOW, &cr0shadow); @@ -1211,14 +1215,14 @@ printf("cr0_shadow[%d]\t\t0x%016lx\n", vcpu, cr0shadow); } - if (!error && get_cr4_mask) { + if (!error && (get_cr4_mask | get_all)) { uint64_t cr4mask; error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR4_MASK, &cr4mask); if (error == 0) printf("cr4_mask[%d]\t\t0x%016lx\n", vcpu, cr4mask); } - if (!error && get_cr4_shadow) { + if (!error && (get_cr4_shadow | get_all)) { uint64_t cr4shadow; error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR4_SHADOW, &cr4shadow); @@ -1226,7 +1230,7 @@ printf("cr4_shadow[%d]\t\t0x%016lx\n", vcpu, cr4shadow); } - if (!error && get_cr3_targets) { + if (!error && (get_cr3_targets | get_all)) { uint64_t target_count, target_addr; error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR3_TARGET_COUNT, &target_count); @@ -1264,19 +1268,19 @@ } } - if (!error && get_apic_access_addr) { + if (!error && (get_apic_access_addr | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_APIC_ACCESS, &addr); if (error == 0) printf("apic_access_addr[%d]\t0x%016lx\n", vcpu, addr); } - if (!error && get_virtual_apic_addr) { + if (!error && (get_virtual_apic_addr | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_VIRTUAL_APIC, &addr); if (error == 0) printf("virtual_apic_addr[%d]\t0x%016lx\n", vcpu, addr); } - if (!error && get_tpr_threshold) { + if (!error && (get_tpr_threshold | get_all)) { uint64_t threshold; error = vm_get_vmcs_field(ctx, vcpu, VMCS_TPR_THRESHOLD, &threshold); @@ -1284,40 +1288,40 @@ printf("tpr_threshold[%d]\t0x%08lx\n", vcpu, threshold); } - if (!error && get_msr_bitmap_address) { + if (!error && (get_msr_bitmap_address | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_MSR_BITMAP, &addr); if (error == 0) printf("msr_bitmap[%d]\t\t0x%016lx\n", vcpu, addr); } - if (!error && get_msr_bitmap) { + if (!error && (get_msr_bitmap | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_MSR_BITMAP, &addr); if (error == 0) error = dump_vmcs_msr_bitmap(vcpu, addr); } - if (!error && get_vpid) { + if (!error && (get_vpid | get_all)) { uint64_t vpid; error = vm_get_vmcs_field(ctx, vcpu, VMCS_VPID, &vpid); if (error == 0) printf("vpid[%d]\t\t0x%04lx\n", vcpu, vpid); } - if (!error && get_ple_window) { + if (!error && (get_ple_window | get_all)) { uint64_t window; error = vm_get_vmcs_field(ctx, vcpu, VMCS_PLE_WINDOW, &window); if (error == 0) printf("ple_window[%d]\t\t0x%08lx\n", vcpu, window); } - if (!error && get_ple_gap) { + if (!error && (get_ple_gap | get_all)) { uint64_t gap; error = vm_get_vmcs_field(ctx, vcpu, VMCS_PLE_GAP, &gap); if (error == 0) printf("ple_gap[%d]\t\t0x%08lx\n", vcpu, gap); } - if (!error && get_inst_err) { + if (!error && (get_inst_err | get_all)) { uint64_t insterr; error = vm_get_vmcs_field(ctx, vcpu, VMCS_INSTRUCTION_ERROR, &insterr); @@ -1327,61 +1331,61 @@ } } - if (!error && get_exit_ctls) { + if (!error && (get_exit_ctls | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_CTLS, &ctl); if (error == 0) printf("exit_ctls[%d]\t\t0x%08lx\n", vcpu, ctl); } - if (!error && get_entry_ctls) { + if (!error && (get_entry_ctls | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_ENTRY_CTLS, &ctl); if (error == 0) printf("entry_ctls[%d]\t\t0x%08lx\n", vcpu, ctl); } - if (!error && get_host_pat) { + if (!error && (get_host_pat | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_HOST_IA32_PAT, &pat); if (error == 0) printf("host_pat[%d]\t\t0x%016lx\n", vcpu, pat); } - if (!error && get_guest_pat) { + if (!error && (get_guest_pat | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_GUEST_IA32_PAT, &pat); if (error == 0) printf("guest_pat[%d]\t\t0x%016lx\n", vcpu, pat); } - if (!error && get_host_cr0) { + if (!error && (get_host_cr0 | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_HOST_CR0, &cr0); if (error == 0) printf("host_cr0[%d]\t\t0x%016lx\n", vcpu, cr0); } - if (!error && get_host_cr3) { + if (!error && (get_host_cr3 | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_HOST_CR3, &cr3); if (error == 0) printf("host_cr3[%d]\t\t0x%016lx\n", vcpu, cr3); } - if (!error && get_host_cr4) { + if (!error && (get_host_cr4 | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_HOST_CR4, &cr4); if (error == 0) printf("host_cr4[%d]\t\t0x%016lx\n", vcpu, cr4); } - if (!error && get_host_rip) { + if (!error && (get_host_rip | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_HOST_RIP, &rip); if (error == 0) printf("host_rip[%d]\t\t0x%016lx\n", vcpu, rip); } - if (!error && get_host_rsp) { + if (!error && (get_host_rsp | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_HOST_RSP, &rsp); if (error == 0) printf("host_rip[%d]\t\t0x%016lx\n", vcpu, rsp); } - if (!error && get_guest_sysenter) { + if (!error && (get_guest_sysenter | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_GUEST_IA32_SYSENTER_CS, &cs); if (error == 0) @@ -1397,19 +1401,19 @@ printf("guest_sysenter_ip[%d]\t0x%016lx\n", vcpu, rip); } - if (!error && get_vmcs_link) { + if (!error && (get_vmcs_link | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_LINK_POINTER, &addr); if (error == 0) printf("vmcs_pointer[%d]\t0x%016lx\n", vcpu, addr); } - if (!error && get_vmcs_exit_reason) { + if (!error && (get_vmcs_exit_reason | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_REASON, &u64); if (error == 0) printf("vmcs_exit_reason[%d]\t0x%016lx\n", vcpu, u64); } - if (!error && get_vmcs_exit_qualification) { + if (!error && (get_vmcs_exit_qualification | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_QUALIFICATION, &u64); if (error == 0) @@ -1417,7 +1421,7 @@ vcpu, u64); } - if (!error && get_vmcs_exit_interruption_info) { + if (!error && (get_vmcs_exit_interruption_info | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_INTERRUPTION_INFO, &u64); if (error == 0) { @@ -1426,7 +1430,7 @@ } } - if (!error && get_vmcs_exit_interruption_error) { + if (!error && (get_vmcs_exit_interruption_error | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_INTERRUPTION_ERROR, &u64); if (error == 0) { @@ -1435,7 +1439,7 @@ } } - if (!error && get_vmcs_interruptibility) { + if (!error && (get_vmcs_interruptibility | get_all)) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_GUEST_INTERRUPTIBILITY, &u64); if (error == 0) { @@ -1452,7 +1456,7 @@ printf("Capability \"%s\" is not available\n", capname); } - if (!error && getcap) { + if (!error && (getcap | get_all)) { int captype, val; captype = vm_capability_name2type(capname); error = vm_get_capability(ctx, vcpu, captype, &val); From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 07:47:08 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 2FFD61065670 for ; Thu, 14 Jun 2012 07:47:06 +0000 (UTC) (envelope-from syuu@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 07:47:06 +0000 Date: Thu, 14 Jun 2012 07:47:06 +0000 From: syuu@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614074706.2FFD61065670@hub.freebsd.org> Cc: Subject: socsvn commit: r237671 - soc2012/syuu/bhyve-bios/lib/libvmmapi X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 07:47:08 -0000 Author: syuu Date: Thu Jun 14 07:47:05 2012 New Revision: 237671 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237671 Log: added vm_setup_bios_* API for realmode initialization Added: soc2012/syuu/bhyve-bios/lib/libvmmapi/vmmapi_bios.c Modified: soc2012/syuu/bhyve-bios/lib/libvmmapi/Makefile soc2012/syuu/bhyve-bios/lib/libvmmapi/vmmapi.h Modified: soc2012/syuu/bhyve-bios/lib/libvmmapi/Makefile ============================================================================== --- soc2012/syuu/bhyve-bios/lib/libvmmapi/Makefile Thu Jun 14 07:45:47 2012 (r237670) +++ soc2012/syuu/bhyve-bios/lib/libvmmapi/Makefile Thu Jun 14 07:47:05 2012 (r237671) @@ -1,7 +1,7 @@ # $FreeBSD$ LIB= vmmapi -SRCS= vmmapi.c vmmapi_freebsd.c mptable.c +SRCS= vmmapi.c vmmapi_freebsd.c vmmapi_bios.c mptable.c INCS= vmmapi.h WARNS?= 2 Modified: soc2012/syuu/bhyve-bios/lib/libvmmapi/vmmapi.h ============================================================================== --- soc2012/syuu/bhyve-bios/lib/libvmmapi/vmmapi.h Thu Jun 14 07:45:47 2012 (r237670) +++ soc2012/syuu/bhyve-bios/lib/libvmmapi/vmmapi.h Thu Jun 14 07:47:05 2012 (r237671) @@ -97,4 +97,12 @@ uint64_t rip, uint64_t cr3, uint64_t gdtbase, uint64_t rsp); void vm_setup_freebsd_gdt(uint64_t *gdtr); + +/* + * BIOS boot specific APIs + */ +int vm_setup_bios_registers(struct vmctx *ctx, int vcpu, + uint64_t rip, uint64_t cr3, uint64_t gdtbase, + uint64_t rsp); +void vm_setup_bios_gdt(uint64_t *gdtr); #endif /* _VMMAPI_H_ */ Added: soc2012/syuu/bhyve-bios/lib/libvmmapi/vmmapi_bios.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/syuu/bhyve-bios/lib/libvmmapi/vmmapi_bios.c Thu Jun 14 07:47:05 2012 (r237671) @@ -0,0 +1,184 @@ +/*- + * Copyright (c) 2011 NetApp, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +__FBSDID("$FreeBSD$"); + +#include + +#include +#include +#include + +#include "vmmapi.h" + +#ifndef CR4_VMXE +#define CR4_VMXE (1UL << 13) +#endif + +#define DESC_UNUSABLE 0x00010000 + +#define GUEST_NULL_SEL 0 +#define GUEST_CODE_SEL 1 +#define GUEST_DATA_SEL 2 +#define GUEST_GDTR_LIMIT (3 * 8 - 1) + +void +vm_setup_bios_gdt(uint64_t *gdtr) +{ + gdtr[GUEST_NULL_SEL] = 0; + gdtr[GUEST_CODE_SEL] = 0x0020980000000000; + gdtr[GUEST_DATA_SEL] = 0x0000900000000000; +} + +/* + * Setup the 'vcpu' register set such that it will begin execution at + * 'rip' in long mode. + */ +int +vm_setup_bios_registers(struct vmctx *vmctx, int vcpu, + uint64_t rip, uint64_t cr3, uint64_t gdtbase, + uint64_t rsp) +{ + int error; + uint64_t cr0, cr4, efer, rflags, desc_base; + uint32_t desc_access, desc_limit; + + cr0 = CR0_NE; + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR0, cr0)) != 0) + goto done; + + cr4 = 0; + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR4, cr4)) != 0) + goto done; + + efer = 0; + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_EFER, efer))) + goto done; + + rflags = 0x2; + error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RFLAGS, rflags); + if (error) + goto done; + + desc_base = 0; + desc_limit = 0; + desc_access = 0x0000209B; + error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_CS, + desc_base, desc_limit, desc_access); + if (error) + goto done; + + desc_access = 0x00000093; + error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_DS, + desc_base, desc_limit, desc_access); + if (error) + goto done; + + error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_ES, + desc_base, desc_limit, desc_access); + if (error) + goto done; + + error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_FS, + desc_base, desc_limit, desc_access); + if (error) + goto done; + + error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_GS, + desc_base, desc_limit, desc_access); + if (error) + goto done; + + error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_SS, + desc_base, desc_limit, desc_access); + if (error) + goto done; + + /* + * XXX TR is pointing to null selector even though we set the + * TSS segment to be usable with a base address and limit of 0. + */ + desc_access = 0x0000008b; + error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_TR, 0, 0, desc_access); + if (error) + goto done; + + error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_LDTR, 0, 0, + DESC_UNUSABLE); + if (error) + goto done; + + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CS, 0)) != 0) + goto done; + + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_DS, 0)) != 0) + goto done; + + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_ES, 0)) != 0) + goto done; + + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_FS, 0)) != 0) + goto done; + + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_GS, 0)) != 0) + goto done; + + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_SS, 0)) != 0) + goto done; + + /* XXX TR is pointing to the null selector */ + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_TR, 0)) != 0) + goto done; + + /* LDTR is pointing to the null selector */ + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_LDTR, 0)) != 0) + goto done; + + /* entry point */ + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RIP, rip)) != 0) + goto done; + + /* page table base */ + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR3, 0)) != 0) + goto done; + + desc_base = gdtbase; + desc_limit = GUEST_GDTR_LIMIT; + error = vm_set_desc(vmctx, vcpu, VM_REG_GUEST_GDTR, + desc_base, desc_limit, 0); + if (error != 0) + goto done; + + if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_RSP, rsp)) != 0) + goto done; + + error = 0; +done: + return (error); +} From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 07:49:25 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 45FD9106566B for ; Thu, 14 Jun 2012 07:49:23 +0000 (UTC) (envelope-from syuu@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 07:49:23 +0000 Date: Thu, 14 Jun 2012 07:49:23 +0000 From: syuu@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614074923.45FD9106566B@hub.freebsd.org> Cc: Subject: socsvn commit: r237672 - soc2012/syuu/bhyve-bios/usr.sbin/bhyvebiosload X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 07:49:25 -0000 Author: syuu Date: Thu Jun 14 07:49:22 2012 New Revision: 237672 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237672 Log: forked bhyveload to bhyvebiosload Added: soc2012/syuu/bhyve-bios/usr.sbin/bhyvebiosload/ soc2012/syuu/bhyve-bios/usr.sbin/bhyvebiosload/Makefile soc2012/syuu/bhyve-bios/usr.sbin/bhyvebiosload/bhyvebiosload.c Added: soc2012/syuu/bhyve-bios/usr.sbin/bhyvebiosload/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/syuu/bhyve-bios/usr.sbin/bhyvebiosload/Makefile Thu Jun 14 07:49:22 2012 (r237672) @@ -0,0 +1,14 @@ +# $FreeBSD: soc2012/syuu/bhyve-bios/usr.sbin/bhyvebiosload/Makefile 224004 2011-07-06 22:38:09Z neel $ + +PROG= bhyvebiosload +SRCS= bhyvebiosload.c +NO_MAN= + +DPADD+= ${LIBVMMAPI} +LDADD+= -lvmmapi + +WARNS?= 3 + +CFLAGS+=-I${.CURDIR}/../../sys/boot/userboot -g + +.include Added: soc2012/syuu/bhyve-bios/usr.sbin/bhyvebiosload/bhyvebiosload.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/syuu/bhyve-bios/usr.sbin/bhyvebiosload/bhyvebiosload.c Thu Jun 14 07:49:22 2012 (r237672) @@ -0,0 +1,626 @@ +/*- + * Copyright (c) 2011 NetApp, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY NETAPP, INC ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NETAPP, INC OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: soc2012/syuu/bhyve-bios/usr.sbin/bhyveload/bhyveload.c 234984 2012-04-26 07:52:28Z grehan $ + */ + +/*- + * Copyright (c) 2011 Google, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: soc2012/syuu/bhyve-bios/usr.sbin/bhyveload/bhyveload.c 234984 2012-04-26 07:52:28Z grehan $ + */ + +#include +__FBSDID("$FreeBSD: soc2012/syuu/bhyve-bios/usr.sbin/bhyveload/bhyveload.c 234984 2012-04-26 07:52:28Z grehan $"); + +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "userboot.h" + +#define MB (1024 * 1024UL) +#define GB (1024 * 1024 * 1024UL) +#define BSP 0 + +static char *host_base = "/"; +static struct termios term, oldterm; +static int disk_fd = -1; + +static char *vmname, *progname, *membase; +static uint64_t lowmem, highmem; +static struct vmctx *ctx; + +static uint64_t gdtbase, cr3, rsp; + +static void cb_exit(void *arg, int v); + +/* + * Console i/o callbacks + */ + +#if 0 +static void +cb_putc(void *arg, int ch) +{ + char c = ch; + + write(1, &c, 1); +} + +static int +cb_getc(void *arg) +{ + char c; + + if (read(0, &c, 1) == 1) + return (c); + return (-1); +} + +static int +cb_poll(void *arg) +{ + int n; + + if (ioctl(0, FIONREAD, &n) >= 0) + return (n > 0); + return (0); +} +#endif + +/* + * Host filesystem i/o callbacks + */ + +struct cb_file { + int cf_isdir; + size_t cf_size; + struct stat cf_stat; + union { + int fd; + DIR *dir; + } cf_u; +}; + +static int +cb_open(void *arg, const char *filename, void **hp) +{ + struct stat st; + struct cb_file *cf; + char path[PATH_MAX]; + + if (!host_base) + return (ENOENT); + + strlcpy(path, host_base, PATH_MAX); + if (path[strlen(path) - 1] == '/') + path[strlen(path) - 1] = 0; + strlcat(path, filename, PATH_MAX); + cf = malloc(sizeof(struct cb_file)); + if (stat(path, &cf->cf_stat) < 0) { + free(cf); + return (errno); + } + + cf->cf_size = st.st_size; + if (S_ISDIR(cf->cf_stat.st_mode)) { + cf->cf_isdir = 1; + cf->cf_u.dir = opendir(path); + if (!cf->cf_u.dir) + goto out; + *hp = cf; + return (0); + } + if (S_ISREG(cf->cf_stat.st_mode)) { + cf->cf_isdir = 0; + cf->cf_u.fd = open(path, O_RDONLY); + if (cf->cf_u.fd < 0) + goto out; + *hp = cf; + return (0); + } + +out: + free(cf); + return (EINVAL); +} + +static int +cb_close(void *arg, void *h) +{ + struct cb_file *cf = h; + + if (cf->cf_isdir) + closedir(cf->cf_u.dir); + else + close(cf->cf_u.fd); + free(cf); + + return (0); +} + +#if 0 +static int +cb_isdir(void *arg, void *h) +{ + struct cb_file *cf = h; + + return (cf->cf_isdir); +} +#endif + +static int +cb_read(void *arg, void *h, void *buf, size_t size, size_t *resid) +{ + struct cb_file *cf = h; + ssize_t sz; + + if (cf->cf_isdir) + return (EINVAL); + sz = read(cf->cf_u.fd, buf, size); + if (sz < 0) + return (EINVAL); + *resid = size - sz; + return (0); +} + +#if 0 +static int +cb_readdir(void *arg, void *h, uint32_t *fileno_return, uint8_t *type_return, + size_t *namelen_return, char *name) +{ + struct cb_file *cf = h; + struct dirent *dp; + + if (!cf->cf_isdir) + return (EINVAL); + + dp = readdir(cf->cf_u.dir); + if (!dp) + return (ENOENT); + + /* + * Note: d_namlen is in the range 0..255 and therefore less + * than PATH_MAX so we don't need to test before copying. + */ + *fileno_return = dp->d_fileno; + *type_return = dp->d_type; + *namelen_return = dp->d_namlen; + memcpy(name, dp->d_name, dp->d_namlen); + name[dp->d_namlen] = 0; + + return (0); +} + +static int +cb_seek(void *arg, void *h, uint64_t offset, int whence) +{ + struct cb_file *cf = h; + + if (cf->cf_isdir) + return (EINVAL); + if (lseek(cf->cf_u.fd, offset, whence) < 0) + return (errno); + return (0); +} + +static int +cb_stat(void *arg, void *h, int *mode, int *uid, int *gid, uint64_t *size) +{ + struct cb_file *cf = h; + + *mode = cf->cf_stat.st_mode; + *uid = cf->cf_stat.st_uid; + *gid = cf->cf_stat.st_gid; + *size = cf->cf_stat.st_size; + return (0); +} + +/* + * Disk image i/o callbacks + */ + +static int +cb_diskread(void *arg, int unit, uint64_t from, void *to, size_t size, + size_t *resid) +{ + ssize_t n; + + if (unit != 0 || disk_fd == -1) + return (EIO); + n = pread(disk_fd, to, size, from); + if (n < 0) + return (errno); + *resid = size - n; + return (0); +} +#endif + +/* + * Guest virtual machine i/o callbacks + */ +static int +cb_copyin(void *arg, const void *from, uint64_t to, size_t size) +{ + + to &= 0x7fffffff; + if (to > lowmem) + return (EFAULT); + if (to + size > lowmem) + size = lowmem - to; + + memcpy(&membase[to], from, size); + + return (0); +} + +#if 0 +static int +cb_copyout(void *arg, uint64_t from, void *to, size_t size) +{ + + from &= 0x7fffffff; + if (from > lowmem) + return (EFAULT); + if (from + size > lowmem) + size = lowmem - from; + + memcpy(to, &membase[from], size); + + return (0); +} + +static void +cb_setreg(void *arg, int r, uint64_t v) +{ + int error; + enum vm_reg_name vmreg; + + vmreg = VM_REG_LAST; + + switch (r) { + case 4: + vmreg = VM_REG_GUEST_RSP; + rsp = v; + break; + default: + break; + } + + if (vmreg == VM_REG_LAST) { + printf("test_setreg(%d): not implemented\n", r); + cb_exit(NULL, USERBOOT_EXIT_QUIT); + } + + error = vm_set_register(ctx, BSP, vmreg, v); + if (error) { + perror("vm_set_register"); + cb_exit(NULL, USERBOOT_EXIT_QUIT); + } +} + +static void +cb_setmsr(void *arg, int r, uint64_t v) +{ + int error; + enum vm_reg_name vmreg; + + vmreg = VM_REG_LAST; + + switch (r) { + case MSR_EFER: + vmreg = VM_REG_GUEST_EFER; + break; + default: + break; + } + + if (vmreg == VM_REG_LAST) { + printf("test_setmsr(%d): not implemented\n", r); + cb_exit(NULL, USERBOOT_EXIT_QUIT); + } + + error = vm_set_register(ctx, BSP, vmreg, v); + if (error) { + perror("vm_set_msr"); + cb_exit(NULL, USERBOOT_EXIT_QUIT); + } +} + +static void +cb_setcr(void *arg, int r, uint64_t v) +{ + int error; + enum vm_reg_name vmreg; + + vmreg = VM_REG_LAST; + + switch (r) { + case 0: + vmreg = VM_REG_GUEST_CR0; + break; + case 3: + vmreg = VM_REG_GUEST_CR3; + cr3 = v; + break; + case 4: + vmreg = VM_REG_GUEST_CR4; + break; + default: + break; + } + + if (vmreg == VM_REG_LAST) { + printf("test_setcr(%d): not implemented\n", r); + cb_exit(NULL, USERBOOT_EXIT_QUIT); + } + + error = vm_set_register(ctx, BSP, vmreg, v); + if (error) { + perror("vm_set_cr"); + cb_exit(NULL, USERBOOT_EXIT_QUIT); + } +} +#endif + +static void +cb_setgdt(void *arg, uint64_t base, size_t size) +{ + int error; + + error = vm_set_desc(ctx, BSP, VM_REG_GUEST_GDTR, base, size - 1, 0); + if (error != 0) { + perror("vm_set_desc(gdt)"); + cb_exit(NULL, USERBOOT_EXIT_QUIT); + } + + gdtbase = base; +} + +static void +cb_exec(void *arg, uint64_t rip) +{ + int error; + + error = vm_setup_bios_registers(ctx, BSP, rip, cr3, gdtbase, rsp); + if (error) { + perror("vm_setup_freebsd_registers"); + cb_exit(NULL, USERBOOT_EXIT_QUIT); + } + + cb_exit(NULL, 0); +} + +#if 0 +/* + * Misc + */ + +static void +cb_delay(void *arg, int usec) +{ + + usleep(usec); +} +#endif + +static void +cb_exit(void *arg, int v) +{ + + tcsetattr(0, TCSAFLUSH, &oldterm); + exit(v); +} + +#if 0 +static void +cb_getmem(void *arg, uint64_t *ret_lowmem, uint64_t *ret_highmem) +{ + + *ret_lowmem = lowmem; + *ret_highmem = highmem; +} + +static struct loader_callbacks_v1 cb = { + .getc = cb_getc, + .putc = cb_putc, + .poll = cb_poll, + + .open = cb_open, + .close = cb_close, + .isdir = cb_isdir, + .read = cb_read, + .readdir = cb_readdir, + .seek = cb_seek, + .stat = cb_stat, + + .diskread = cb_diskread, + + .copyin = cb_copyin, + .copyout = cb_copyout, + .setreg = cb_setreg, + .setmsr = cb_setmsr, + .setcr = cb_setcr, + .setgdt = cb_setgdt, + .exec = cb_exec, + + .delay = cb_delay, + .exit = cb_exit, + .getmem = cb_getmem, +}; +#endif + +static void +usage(void) +{ + + printf("usage: %s [-d ] [-h ] " + "[-m ][-M ] " + "\n", progname); + exit(1); +} + +int +main(int argc, char** argv) +{ + void *h; + int opt, error; + char *disk_image; + struct cb_file *cf; + char *buf; + size_t res; + uint64_t gdtr[3]; + + progname = argv[0]; + + lowmem = 768 * MB; + highmem = 0; + disk_image = NULL; + + while ((opt = getopt(argc, argv, "d:h:m:M:")) != -1) { + switch (opt) { + case 'd': + disk_image = optarg; + break; + + case 'h': + host_base = optarg; + break; + + case 'm': + lowmem = strtoul(optarg, NULL, 0) * MB; + break; + + case 'M': + highmem = strtoul(optarg, NULL, 0) * MB; + break; + + case '?': + usage(); + } + } + + argc -= optind; + argv += optind; + + if (argc != 1) + usage(); + + vmname = argv[0]; + + error = vm_create(vmname); + if (error != 0 && errno != EEXIST) { + perror("vm_create"); + exit(1); + + } + + ctx = vm_open(vmname); + if (ctx == NULL) { + perror("vm_open"); + exit(1); + } + + error = vm_setup_memory(ctx, 0, lowmem, &membase); + if (error) { + perror("vm_setup_memory(lowmem)"); + exit(1); + } + + if (highmem != 0) { + error = vm_setup_memory(ctx, 4 * GB, highmem, NULL); + if (error) { + perror("vm_setup_memory(highmem)"); + exit(1); + } + } + + tcgetattr(0, &term); + oldterm = term; + term.c_lflag &= ~(ICANON|ECHO); + term.c_iflag &= ~ICRNL; + tcsetattr(0, TCSAFLUSH, &term); + + if (disk_image) { + disk_fd = open(disk_image, O_RDONLY); + } + + if (cb_open(NULL, "/pseudobios.bin", &h)) { + perror("cb_open "); + return (1); + } + cf = h; + buf = malloc(6); + if (cb_read(NULL, cf, buf, 3, &res) != 0 || res != 0) { + fprintf(stderr, "cb_read\n"); + return (1); + } + cb_copyin(NULL, buf, 0x0, 3); + cb_close(NULL, cf); + vm_setup_bios_gdt(gdtr); + cb_copyin(NULL, gdtr, 0x5000, sizeof(gdtr)); + cb_setgdt(NULL, 0x5000, sizeof(gdtr)); + cb_exec(NULL, 0x0); + return (0); +} From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 09:33:07 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 0D926106564A for ; Thu, 14 Jun 2012 09:33:05 +0000 (UTC) (envelope-from scher@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 09:33:05 +0000 Date: Thu, 14 Jun 2012 09:33:05 +0000 From: scher@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614093305.0D926106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237676 - soc2012/scher/par_ports/head/Mk X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 09:33:07 -0000 Author: scher Date: Thu Jun 14 09:33:04 2012 New Revision: 237676 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237676 Log: [docs] Added docs for global variables. User variables have appropriate assignments "?=". Changed docs for scripts. Modified: soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Modified: soc2012/scher/par_ports/head/Mk/bsd.parallel.mk ============================================================================== --- soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Thu Jun 14 07:51:37 2012 (r237675) +++ soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Thu Jun 14 09:33:04 2012 (r237676) @@ -5,17 +5,84 @@ # # Please view me with 4 column tabs! +# The following variables may be specified by user. +# By the way, all this variable have default values. # -# _parv_WANT_PARALLEL_BUILD -# _parv_ATTEMPTS_TO_LOCK +# _parv_WANT_PARALLEL_BUILD - trigger for parallel ports installation. +# Set this variable to some value to enable +# parallel ports build/install. It does not +# matter what value is assigned. +# Example: _parv_WANT_PARALLEL_BUILD=yes +# +# _parv_WAIT_FOR_LOCK_TIME - time in seconds to wait if lock file is locked +# by lockf(1) in case of directory locking. +# Default: 5 +# +# _parv_WAIT_FOR_UNLOCK_TIME - time in seconds to wait if lock file is locked +# by lockf(1) in case of directory unlocking. +# Default: 15 +# +# _parv_LOCK_ATTEMPT_TIMEOUT - while trying to lock a directory in "while" +# loop, if the directory is locked, this +# variable specifies delay in seconds before +# next attempt to lock a directory. Default: 2 +# +# _parv_ON_LOCK_FEEDBACK_TIMEOUT -while trying to lock a directory in "while" +# loop, if the directory is locked, user +# feedback is printed once in +# ${_parv_ON_LOCK_FEEDBACK_TIMEOUT} attempts. +# Default: 2 +# +# _parv_PARALLEL_BUILDS_NUMBER - number of parallel dependency builds for +# current port. +# Default: ${_parv_DEFAULT_PAR_BUILDS_NUM} (see below). +# If value of this variable is more then +# ${_parv_DEFAULT_PAR_BUILDS_NUM}, then it will +# be set to ${_parv_DEFAULT_PAR_BUILDS_NUM}. +# +# The following variables are not assumed to be changed by user +# +# _parv_ON_LOCK_EXIT_STATUS - if the directory is locked script exits with +# this exit status (2). +# +# _parv_MAKE_LOCK_EXIT_STATUS - if port's directory is locked make(1) process +# exits with this exit status (158). +# +# LOCK_DIR - directory that contains lock files of locked ports. +# Value: /var/db/portlocks +# +# _parv_PKG_DBDIR_LOCK_FILE - name of lock file for ${PKG_DBDIR} locking. +# Value: .lock +# This file contains PID of the process, that +# locked ${PKG_DBDIR}. +# +# _parv_LOCK_DIR_LOCK_FILE - name of lock file for ${LOCK_DIR} locking. +# Value: ${PKGNAME} +# This file contains PID of the process, that +# locked ${LOCK_DIR}. +# +# _parv_DEFAULT_TARGETS - sequence of bsd.port.mk targets. If at least +# one of this targets is encounted in ${.TARGETS} +# then port's directory has to be locked. # +# _parv_DEFAULT_PAR_BUILDS_NUM - default number of parallel dependency builds. +# Value: number of logical CPUs on user's machine. # .if !defined(_POSTMKINCLUDED) && !defined(Parallel_Pre_Include) Parallel_Pre_Include= bsd.parallel.mk -_dparv_= -_parv_= +##################################################### +# Commands +_parv_KILL= /bin/kill +_parv_KILL_SIGNAL= USR1 +_parv_PKILL= /bin/pkill +_parv_PKILL_FLAGS= -P +_parv_UMASK= 777 + +DO_NADA?= ${TRUE} +# End of Commands section +##################################################### ##################################################### # Debugging specific tools and variable declarations _dparv_START_OUTPUT_MESSAGE= =================_PAR_PORTS_SPECIFIC_OUTPUT_============== @@ -34,17 +101,14 @@ breakpoint: @${_dparv_DEBUGGING_BREAKPOINT} -# Delay for feedback message if the directory is locked. -# Just not to annoy a user with feedback message on each attempt to lock a directory. -_parv_ON_LOCK_FEEDBACK_TIMEOUT?= 2 # End of Debugging specific tools and variable declarations section ##################################################### ##################################################### _parv_DEFAULT_TARGETS= all check-sanity fetch checksum extract patch configure build install _parv_IS_DEFAULT_TARGET= 0 -# e.g. make -D_parv_WANT_PARALLEL_BUILD -# All target will be evaluated. It is in default sequence +# in case of the following call: make -D_parv_WANT_PARALLEL_BUILD +# "all" target will be evaluated. It is in default sequence, ${.TARGETS}="". # .if !${.TARGETS} _parv_IS_DEFAULT_TARGET= 1 @@ -69,52 +133,40 @@ .endif ##################################################### ##################################################### -# Commands -_parv_KILL= /bin/kill -_parv_KILL_SIGNAL= USR1 -_parv_PKILL= /bin/pkill -_parv_PKILL_FLAGS= -P -_parv_UMASK= 777 - -DO_NADA?= ${TRUE} -# End of Commands section -##################################################### -##################################################### # Locking variables and tools -#PKG_DBDIR?= /var/db/pkg -LOCK_DIR?= /var/db/portlocks + +LOCK_DIR= /var/db/portlocks _parv_PKG_DBDIR_LOCK_FILE= .lock _parv_LOCK_DIR_LOCK_FILE= ${PKGNAME} -_parv_WAIT_FOR_LOCK_TIME= 5 -_parv_WAIT_FOR_UNLOCK_TIME= 15 +_parv_WAIT_FOR_LOCK_TIME?= 5 +_parv_WAIT_FOR_UNLOCK_TIME?= 15 -# Delay in seconds between attempts to lock a directory in lock loops -_parv_LOCK_ATTEMPT_TIMEOUT=2 +_parv_LOCK_ATTEMPT_TIMEOUT?= 2 +_parv_ON_LOCK_FEEDBACK_TIMEOUT?= 2 -# exit status of lock script in case the directory is locked _parv_ON_LOCK_EXIT_STATUS= 2 _parv_LOCKF_EX_TEMPFAIL= 75 _parv_MAKE_LOCK_EXIT_STATUS= 158 +.for _lock_dir in PKG_DBDIR LOCK_DIR +# ${${_lock_dir}} == ${PKG_DBDIR} OR ${LOCK_DIR} + +# _parv_PKG_DBDIR_LOCK_SEQ +# _parv_LOCK_DIR_LOCK_SEQ +# # Senquence of commands to lock a directory using ${_parv_${_lock_dir}_LOCK_FILE}. -# During evaluation of the following commands lockf(1) is holding lock on ${_parv_${_lock_dir}_LOCK_FILE} file. -# Hence NO other process is able to evaluate any commands using lockf(1) -# locking on the same ${_parv_${_lock_dir}_LOCK_FILE} file. +# During evaluation of the following commands lockf(1) is holding lock on +# ${_parv_${_lock_dir}_LOCK_FILE} file. Hence NO other process is able to evaluate +# any commands using lockf(1) locking on the same ${_parv_${_lock_dir}_LOCK_FILE} file. # # Stalled locks cheking enabled. # # If the directory is locked this script returns ${_parv_ON_LOCK_EXIT_STATUS}. +# Process is allowed to work in locked port's directory if and only if it is locked +# by it's parent process. # -# ${${_lock_dir}} == ${PKG_DBDIR} OR ${LOCK_DIR} -# -.for _lock_dir in PKG_DBDIR LOCK_DIR -# _parv_PKG_DBDIR_LOCK_SEQ -# _parv_LOCK_DIR_LOCK_SEQ -# -#_parv_${_lock_dir}_LOCK_FILE:= ${_parv_${_lock_dir}_LOCK_FILE} - _parv_${_lock_dir}_LOCK_SEQ= \ ${CHMOD} ${_parv_UMASK} ${${_lock_dir}}/${_parv_${_lock_dir}_LOCK_FILE}; \ pid=$$(${CAT} ${${_lock_dir}}/${_parv_${_lock_dir}_LOCK_FILE}); \ @@ -160,7 +212,8 @@ # _parv_PKG_DBDIR_DO_LOCK # _parv_LOCK_DIR_DO_LOCK # This scripts handles exit status of lockf(1) call. -# It substitutes exit status 75 of lockf(1) for ${_parv_ON_LOCK_EXIT_STATUS} and pushes it. +# It substitutes exit status 75 of lockf(1) for ${_parv_ON_LOCK_EXIT_STATUS} +# and pushes it. # _parv_${_lock_dir}_DO_LOCK= \ lockf -k -t ${_parv_WAIT_FOR_LOCK_TIME} ${${_lock_dir}}/${_parv_${_lock_dir}_LOCK_FILE} ${SH} -c '${_parv_${_lock_dir}_LOCK_SEQ}' || { \ @@ -178,13 +231,17 @@ ##################################################### -# Loops to lock directory # _parv_PKG_DBDIR_LOCK_LOOP # _parv_LOCK_DIR_LOCK_LOOP -# $${attempts} - Number of attempts to lock a directory. Exetranl variable. -# Default value = 1, if this var is not set. +# Loops to lock a directory +# $${attempts} - Number of attempts to lock a directory. Exetranal variable. +# Default: 1, if this var is not set. # Set this variable to -1 for infinity loop. -# e.g. ( attempts=10; ${_parv_LOCK_DIR_LOCK_LOOP} ) && ..... || .... +# e.g. ( attempts=10; ${_parv_LOCK_DIR_LOCK_LOOP} ) && echo dir is locked \ +# || echo dir is not locked +# +# Script exits with ${_parv_ON_LOCK_EXIT_STATUS} status if it was unabled +# to lock a directry after $${attempts} attempts. # _parv_${_lock_dir}_LOCK_LOOP= \ enable_feedback=${_parv_ON_LOCK_FEEDBACK_TIMEOUT}; \ @@ -233,16 +290,20 @@ fi; \ }' -.endfor # _lock_dir in PKG_DBDIR .CURDIR -.undef _parv_${_lock_dir}_LOCK_FILE +##################################################### + +.endfor # .for _lock_dir in PKG_DBDIR LOCK_DIR ##################################################### # _parv_CHECK_SEQ # _parv_CHECK_LOCK -# The former variables Implement check for lock utility -# $${pkg_name} - port to check. External variable for script. Supports shell RE. Assign this variable -# appropriate value before executing this script e.g. ( pkg_name=apache-[1234]; ${_parv_CHECK_LOCK} ) || ... -# Script exits with status ${_parv_ON_LOCK_EXIT_STATUS} if $${pkg_name} is locked +# The former variables implement check for lock utility. +# $${pkg_name} - port to check, since ${_parv_LOCK_DIR_LOCK_FILE} = ${PKGNAME} +# External variable for script. Supports sh(1) patterns +# (see Shell Patterns section). Assign this variable appropriate +# value before executing this script. +# e.g. ( pkg_name=apache-[1234]; ${_parv_CHECK_LOCK} ) || ... +# Script exits with exit status ${_parv_ON_LOCK_EXIT_STATUS} if $${pkg_name} is locked # _parv_CHECK_SEQ= \ ${CHMOD} ${_parv_UMASK} ${LOCK_DIR}/$${pkg_name}; \ From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 13:52:53 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id BE2D41065670 for ; Thu, 14 Jun 2012 13:52:51 +0000 (UTC) (envelope-from gpf@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 13:52:51 +0000 Date: Thu, 14 Jun 2012 13:52:51 +0000 From: gpf@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614135251.BE2D41065670@hub.freebsd.org> Cc: Subject: socsvn commit: r237689 - soc2012/gpf/pefs_kmod/sys/fs/pefs X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 13:52:53 -0000 Author: gpf Date: Thu Jun 14 13:52:50 2012 New Revision: 237689 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237689 Log: - remove IO_NODELOCKED from VOP_READ calls - fixed bug where mount operationg seemed to 'hang' if an error was encountered. I needed to vrele vp instead of lowerrootvp in case of error during pefs_checksum_load(). Before fix, vfs_mount_destroy() slept for ever while waiting mnt_ref to drop to 0. Modified: soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vfsops.c soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vnops.c Modified: soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vfsops.c ============================================================================== --- soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vfsops.c Thu Jun 14 12:43:37 2012 (r237688) +++ soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vfsops.c Thu Jun 14 13:52:50 2012 (r237689) @@ -126,6 +126,8 @@ static void pefs_dbg_vnode(struct vnode *vp, char *str) { + if (vp == NULL) + return; printf("%s is locked: %d\n", str, VOP_ISLOCKED(vp)); printf("%s usecount: %d\n", str, vp->v_usecount); printf("%s holdcnt: %d\n", str, vp->v_holdcnt); @@ -214,14 +216,11 @@ pathlen = MAXPATHLEN + 1; path = malloc(pathlen, M_TEMP, M_WAITOK); snprintf(path, pathlen, "%s/%s", mp->mnt_stat.f_mntfromname, PEFS_FILE_CHECKSUM); - printf("path = %s\n", path); /* grab a vp for our checksum file */ - pefs_dbg_vnode(pm->pm_rootvp, "start rootvp"); NDINIT(ndp, LOOKUP, LOCKLEAF, UIO_SYSSPACE, path, curthread); error = namei(ndp); free(path, M_TEMP); - pefs_dbg_vnode(pm->pm_rootvp, "after namei rootvp"); if (error != 0) { printf("pefs_checksum_load: namei error %d\n", error); return (error); @@ -235,7 +234,8 @@ pefs_chunk_create(&pc, NULL, buflen); puio = pefs_chunk_uio(&pc, 0, UIO_READ); - error = VOP_READ(checksumvp, puio, IO_UNIT | IO_NODELOCKED, cred); + /* XXXgpf: gleb says I should use vn_rdwr instead of VOP_READ */ + error = VOP_READ(checksumvp, puio, IO_UNIT, cred); if (error != 0) { printf("pefs_checksum_load: vop_read1 error %d\n", error); pefs_chunk_free(&pc, NULL); @@ -266,7 +266,7 @@ pefs_chunk_create(&pc, NULL, buflen); puio = pefs_chunk_uio(&pc, pcs->pcs_offset_to_hash_table, UIO_READ); - error = VOP_READ(checksumvp, puio, IO_UNIT | IO_NODELOCKED, cred); + error = VOP_READ(checksumvp, puio, IO_UNIT, cred); if (error != 0) { printf("pefs_checksum_load: vop_read2 error %d\n", error); pefs_chunk_free(&pc, NULL); @@ -281,7 +281,7 @@ pefs_chunk_create(&pc, NULL, buflen); puio = pefs_chunk_uio(&pc, pcs->pcs_offset_to_hash_table + buflen, UIO_READ); - error = VOP_READ(checksumvp, puio, IO_UNIT | IO_NODELOCKED, cred); + error = VOP_READ(checksumvp, puio, IO_UNIT, cred); if (error != 0) { printf("pefs_checksum_load: vop_read3 error %d\n", error); pefs_chunk_free(&pc, NULL); @@ -301,7 +301,6 @@ /* keep the reference for checksumvp */ VOP_UNLOCK(checksumvp, 0); pefs_dbg_vnode(checksumvp, "after VOP_UNLOCK checksumvp"); - pefs_dbg_vnode(pm->pm_rootvp, "end rootvp"); pcs->pcs_checksumvp = checksumvp; return (0); @@ -505,15 +504,7 @@ error = pefs_checksum_load(mp); pefs_dbg_vnode(lowerrootvp, "AFTER lowerrootvp"); if (error != 0) { - /* - * XXXgpf: what should be done for lowerrootvp? vput? - * pefs_dbg_vnode shows that at this point lowerootvp - * is not locked, therefore just a vrele? - * Whatever we do, if error occurs during pefs_checksum_load, - * mount seems to 'hang' - */ - vrele(lowerrootvp); - pefs_dbg_vnode(lowerrootvp, "AFTER vrele lowerrootvp"); + vrele(vp); free(pm, M_PEFSMNT); return (error); } Modified: soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vnops.c ============================================================================== --- soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vnops.c Thu Jun 14 12:43:37 2012 (r237688) +++ soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vnops.c Thu Jun 14 13:52:50 2012 (r237689) @@ -2512,7 +2512,7 @@ pefs_chunk_create(&pc, pn, xsct->pxsct_ctext_len); puio = pefs_chunk_uio(&pc, xsct->pxsct_offset, UIO_READ); - error = VOP_READ(lvp, puio, IO_UNIT | IO_NODELOCKED, cred); + error = VOP_READ(lvp, puio, IO_UNIT, cred); if (error == 0) memcpy(xsct->pxsct_ctext, pc.pc_base, xsct->pxsct_ctext_len); From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 14:48:59 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 68FC51065674 for ; Thu, 14 Jun 2012 14:48:58 +0000 (UTC) (envelope-from rudot@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 14:48:58 +0000 Date: Thu, 14 Jun 2012 14:48:58 +0000 From: rudot@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614144858.68FC51065674@hub.freebsd.org> Cc: Subject: socsvn commit: r237691 - soc2012/rudot/sys/kern X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 14:48:59 -0000 Author: rudot Date: Thu Jun 14 14:48:57 2012 New Revision: 237691 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237691 Log: When setting the pcpu resource in racctd, we both need to use the "force" version and need to know if we are past the limits. Modified: soc2012/rudot/sys/kern/kern_racct.c soc2012/rudot/sys/kern/kern_rctl.c Modified: soc2012/rudot/sys/kern/kern_racct.c ============================================================================== --- soc2012/rudot/sys/kern/kern_racct.c Thu Jun 14 13:55:52 2012 (r237690) +++ soc2012/rudot/sys/kern/kern_racct.c Thu Jun 14 14:48:57 2012 (r237691) @@ -510,6 +510,48 @@ racct_add_cred(p->p_ucred, resource, amount); } +/* + * This is basicly racct_set_force_locked(), but with the added + * benefit that if we are over limits, we let the caller know + * via the return value. But we stil do set the resource to the + * specified amount. + */ +static int +racct_set_check_locked(struct proc *p, int resource, uint64_t amount) +{ + int64_t diff; + int over_limit; + + SDT_PROBE(racct, kernel, rusage, set, p, resource, amount, 0, 0); + + /* + * We need proc lock to dereference p->p_ucred. + */ + PROC_LOCK_ASSERT(p, MA_OWNED); + + /* + * may be negative + */ + diff = amount - p->p_racct->r_resources[resource]; +#ifdef notyet + KASSERT(diff >= 0 || RACCT_IS_RECLAIMABLE(resource), + ("racct_set: usage of non-reclaimable resource %d dropping", + resource)); +#endif +#ifdef RCTL + over_limit = rctl_enforce(p, resource, diff); +#else + over_limit = 0; +#endif + racct_alloc_resource(p->p_racct, resource, diff); + if (diff > 0) + racct_add_cred_locked(p->p_ucred, resource, diff); + else if (diff < 0) + racct_sub_cred_locked(p->p_ucred, resource, -diff); + + return (over_limit); +} + static int racct_set_locked(struct proc *p, int resource, uint64_t amount) { @@ -922,7 +964,7 @@ struct timeval wallclock; uint64_t runtime; u_int pct; - int error; + int over_limits; for (;;) { sx_slock(&allproc_lock); @@ -949,8 +991,8 @@ p->p_prev_runtime = runtime; pct = racct_getpcpu(p); mtx_lock(&racct_lock); - error = racct_set_locked(p, RACCT_PCTCPU, pct); - if (error) { + over_limits = racct_set_check_locked(p, RACCT_PCTCPU, pct); + if (over_limits) { racct_proc_disable(p); } else if (racct_proc_disabled(p)) { racct_proc_enable(p); Modified: soc2012/rudot/sys/kern/kern_rctl.c ============================================================================== --- soc2012/rudot/sys/kern/kern_rctl.c Thu Jun 14 13:55:52 2012 (r237690) +++ soc2012/rudot/sys/kern/kern_rctl.c Thu Jun 14 14:48:57 2012 (r237691) @@ -277,7 +277,7 @@ * be denied, 0 otherwise. */ int -rctl_enforce(struct proc *p, int resource, uint64_t amount) +rctl_enforce(struct proc *p, int resource, int64_t amount) { struct rctl_rule *rule; struct rctl_rule_link *link; From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 18:05:18 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 06AE2106566C for ; Thu, 14 Jun 2012 18:05:16 +0000 (UTC) (envelope-from gmiller@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 18:05:16 +0000 Date: Thu, 14 Jun 2012 18:05:16 +0000 From: gmiller@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614180516.06AE2106566C@hub.freebsd.org> Cc: Subject: socsvn commit: r237712 - soc2012/gmiller/locking-head/lib/libthr/thread X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 18:05:18 -0000 Author: gmiller Date: Thu Jun 14 18:05:15 2012 New Revision: 237712 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237712 Log: Fix the remaining bug that caused wait times and contest counts to always be zero. Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_mutex.c soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_mutex.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_mutex.c Thu Jun 14 17:54:52 2012 (r237711) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_mutex.c Thu Jun 14 18:05:15 2012 (r237712) @@ -751,11 +751,7 @@ struct pthread *curthread = _get_curthread(); uint32_t id; int defered; -#ifdef LOCK_PROFILING - struct timespec waittime; - bzero(&waittime, sizeof(waittime)); -#endif if (__predict_false(m <= THR_MUTEX_DESTROYED)) { if (m == THR_MUTEX_DESTROYED) return (EINVAL); @@ -775,10 +771,10 @@ m->m_count--; if (m->m_count == 0) { - MUTEX_RELEASE(m, &waittime); + MUTEX_RELEASE(m); } } else { - MUTEX_RELEASE(m, &waittime); + MUTEX_RELEASE(m); if ((m->m_flags & PMUTEX_FLAG_DEFERED) != 0) { defered = 1; Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h Thu Jun 14 17:54:52 2012 (r237711) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h Thu Jun 14 18:05:15 2012 (r237712) @@ -767,8 +767,7 @@ __hidden; void _rwlock_release_write(struct pthread_rwlock *, struct timespec *) __hidden; -void _mutex_release(struct pthread_mutex *, struct timespec *, - const char *file) __hidden; +void _mutex_release(struct pthread_mutex *, const char *file) __hidden; void _spin_obtain_success(struct pthread_spinlock *, struct timespec *wait_time, const char *file, int line) __hidden; void _spin_obtain_failed(struct pthread_spinlock *, @@ -842,7 +841,7 @@ _mutex_obtain_success(m, ts, file, line) #define MUTEX_OBTAIN_FAILED(m, ts) \ _mutex_obtain_failed(m, ts, file) -#define MUTEX_RELEASE(m, ts) _mutex_release(m, ts, file) +#define MUTEX_RELEASE(m) _mutex_release(m, file) #define RWLOCK_OBTAIN_READ_SUCCESS(l, ts) \ _rwlock_obtain_read_success(l, ts, file, line) #define RWLOCK_OBTAIN_READ_FAILED(l, ts) \ @@ -866,7 +865,7 @@ #define LOCK_PROFILE_EXIT_THREAD(t) do { } while (0) #define MUTEX_OBTAIN_SUCCESS(m, ts) do { } while (0) #define MUTEX_OBTAIN_FAILED(m, ts) do { } while (0) -#define MUTEX_RELEASE(m, ts) do { } while (0) +#define MUTEX_RELEASE(m) do { } while (0) #define RWLOCK_OBTAIN_READ_SUCCESS(l, ts) do { } while (0) #define RWLOCK_OBTAIN_READ_FAILED(l, ts) do { } while (0) #define RWLOCK_OBTAIN_WRITE_SUCCESS(l, ts) do { } while (0) Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Thu Jun 14 17:54:52 2012 (r237711) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Thu Jun 14 18:05:15 2012 (r237712) @@ -173,8 +173,7 @@ } void -_mutex_release(struct pthread_mutex *m, struct timespec *wait_time, - const char *file) +_mutex_release(struct pthread_mutex *m, const char *file) { struct pthread *curthread = _get_curthread(); struct acquisition *acq; @@ -213,19 +212,19 @@ &hold_time, sizeof(struct timespec)); } - if (TIMESPEC_GT(wait_time, + if (TIMESPEC_GT(&acq->wait_time, &acq_point->wait_max)) { memcpy(&acq_point->wait_max, - wait_time, - sizeof(struct timespec)); + &acq->wait_time, + sizeof(struct timespec)); } TIMESPEC_ADD(&acq_point->hold_time, &acq_point->hold_time, &hold_time); TIMESPEC_ADD(&acq_point->wait_time, - &acq_point->wait_time, wait_time); + &acq_point->wait_time, &acq->wait_time); acq_point->acq_count += acq->count; - if (wait_time->tv_sec != 0 || - wait_time->tv_nsec != 0) { + if (acq->wait_time.tv_sec != 0 || + acq->wait_time.tv_nsec != 0) { acq_point->contest_count++; } } From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 21:04:44 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 2D472106566B for ; Thu, 14 Jun 2012 21:04:42 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 21:04:42 +0000 Date: Thu, 14 Jun 2012 21:04:42 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614210442.2D472106566B@hub.freebsd.org> Cc: Subject: socsvn commit: r237727 - in soc2012/jhagewood/diff3: . diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 21:04:44 -0000 Author: jhagewood Date: Thu Jun 14 21:04:41 2012 New Revision: 237727 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237727 Log: Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c ============================================================================== --- soc2012/jhagewood/diff3/diff3/diff3prog.c Thu Jun 14 20:49:22 2012 (r237726) +++ soc2012/jhagewood/diff3/diff3/diff3prog.c Thu Jun 14 21:04:41 2012 (r237727) @@ -64,10 +64,6 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ -#ifdef __FreeBSD__ -#define __dead2 -#endif - #if 0 #ifndef lint static char sccsid[] = "@(#)diff3.c 8.1 (Berkeley) 6/6/93"; @@ -281,7 +277,7 @@ * since the vector is processed in one sequential pass. * The vector could be optimized out of existence) */ -int +static int readin(char *name, struct diff **dd) { int a, b, c, d, i; @@ -323,7 +319,7 @@ return (i); } -int +static int number(char **lc) { int nn; @@ -334,7 +330,7 @@ return (nn); } -char * +static char * getchange(FILE *b) { char *line; @@ -346,7 +342,7 @@ return (NULL); } -char * +static char * getline(FILE *b, size_t *n) { char *cp; @@ -374,7 +370,7 @@ return (buf); } -void +static void merge(int m1, int m2) { struct diff *d1, *d2, *d3; @@ -501,7 +497,7 @@ return (1); } -void +static void separate(const char *s) { @@ -513,7 +509,7 @@ * It is to be printed only if it does not duplicate something to be * printed later. */ -void +static void change(int i, struct range *rold, int dup) { @@ -531,7 +527,7 @@ * print the range of line numbers, rold.from thru rold.to, as n1,n2 or * n1. */ -void +static void prange(struct range *rold) { @@ -550,7 +546,7 @@ * and an artificial dummy difference (trange) must be ginned up to * correspond to the change reported in the other file. */ -void +static void keep(int i, struct range *rnew) { int delta; @@ -566,7 +562,7 @@ * skip to just before line number from in file "i". If "pr" is non-NULL, * print all skipped stuff with string pr as a prefix. */ -int +static int skip(int i, int from, char *pr) { size_t j, n; @@ -586,7 +582,7 @@ * Return 1 or 0 according as the old range (in file 1) contains exactly * the same data as the new range (in file 2). */ -int +static int duplicate(struct range *r1, struct range *r2) { int c, d; @@ -615,7 +611,7 @@ return (1); } -void +static void repos(int nchar) { int i; @@ -625,7 +621,7 @@ } /* If file has trailing carriage return, remove it. */ -void +static void remove_cr(FILE *f) { char ch; @@ -647,7 +643,7 @@ rewind(f); } -void +static void trouble(void) { @@ -657,7 +653,7 @@ /* * collect an editing script for later regurgitation */ -int +static int edit(struct diff *diff, int dup, int j) { @@ -675,7 +671,7 @@ } /* regurgitate */ -void +static void edscript(int n) { int j, k; @@ -706,7 +702,7 @@ exit(overlapcnt); } -void +static void increase(void) { struct diff *p; @@ -740,7 +736,7 @@ szchanges = newsz; } -void +static void help(void) { @@ -759,7 +755,7 @@ "\t--help Output this help.\n\n"); } -void +static void usage(void) { Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Thu Jun 14 20:49:22 2012 (r237726) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Thu Jun 14 21:04:41 2012 (r237727) @@ -11,23 +11,21 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-14 05:32:21.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-14 06:08:56.000000000 -0400 -@@ -65,18 +65,26 @@ ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-14 21:04:21.000000000 -0400 +@@ -64,19 +64,23 @@ + * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ - #ifdef __FreeBSD__ +-#ifdef __FreeBSD__ -#define __dead -+#define __dead2 - #endif - +#if 0 +#ifndef lint +static char sccsid[] = "@(#)diff3.c 8.1 (Berkeley) 6/6/93"; -+#endif + #endif +#endif /* not lint */ +#include -+__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237662 2012-06-14 05:32:59Z jhagewood $"); -+ ++__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237663 2012-06-14 06:11:59Z jhagewood $"); + +#include +#include +#include @@ -45,7 +43,7 @@ #include #include -@@ -134,48 +142,52 @@ int strip_cr; +@@ -134,48 +138,52 @@ int strip_cr; int debug = 0; char f1mark[40], f2mark[40], f3mark[40]; /* markers for -E and -X */ @@ -121,7 +119,7 @@ }; -@@ -216,12 +228,18 @@ main(int argc, char **argv) +@@ -216,12 +224,18 @@ main(int argc, char **argv) case 'X': oflag = eflag = 1; break; @@ -140,7 +138,7 @@ case STRIPCR_OPT: strip_cr = 1; break; -@@ -233,27 +251,25 @@ main(int argc, char **argv) +@@ -233,27 +247,25 @@ main(int argc, char **argv) argc -= optind; argv += optind; /* XXX - argc usage seems wrong here */ @@ -178,7 +176,21 @@ } merge(m, n); exit(EXIT_SUCCESS); -@@ -311,6 +327,7 @@ int +@@ -265,7 +277,7 @@ main(int argc, char **argv) + * since the vector is processed in one sequential pass. + * The vector could be optimized out of existence) + */ +-int ++static int + readin(char *name, struct diff **dd) + { + int a, b, c, d, i; +@@ -307,17 +319,18 @@ readin(char *name, struct diff **dd) + return (i); + } + +-int ++static int number(char **lc) { int nn; @@ -186,7 +198,33 @@ nn = 0; while (isdigit((unsigned char)(**lc))) nn = nn*10 + *(*lc)++ - '0'; -@@ -367,8 +384,7 @@ merge(int m1, int m2) + return (nn); + } + +-char * ++static char * + getchange(FILE *b) + { + char *line; +@@ -329,7 +342,7 @@ getchange(FILE *b) + return (NULL); + } + +-char * ++static char * + getline(FILE *b, size_t *n) + { + char *cp; +@@ -357,7 +370,7 @@ getline(FILE *b, size_t *n) + return (buf); + } + +-void ++static void + merge(int m1, int m2) + { + struct diff *d1, *d2, *d3; +@@ -367,8 +380,7 @@ merge(int m1, int m2) d2 = d23; j = 0; @@ -196,7 +234,7 @@ printf("Binary file detected; comparison failed\n"); exit(EXIT_FAILURE); } -@@ -466,29 +482,29 @@ merge(int m1, int m2) +@@ -466,29 +478,29 @@ merge(int m1, int m2) static int asciifile(FILE *f) { @@ -236,22 +274,27 @@ + return (1); } - void +-void ++static void separate(const char *s) { + printf("====%s\n", s); } -@@ -500,6 +516,7 @@ separate(const char *s) - void +@@ -497,9 +509,10 @@ separate(const char *s) + * It is to be printed only if it does not duplicate something to be + * printed later. + */ +-void ++static void change(int i, struct range *rold, int dup) { + printf("%d:", i); last[i] = rold->to; prange(rold); -@@ -510,12 +527,14 @@ change(int i, struct range *rold, int du +@@ -510,12 +523,14 @@ change(int i, struct range *rold, int du (void)skip(i, rold->to, " "); } @@ -261,14 +304,33 @@ + * print the range of line numbers, rold.from thru rold.to, as n1,n2 or + * n1. */ - void +-void ++static void prange(struct range *rold) { + if (rold->to <= rold->from) printf("%da\n", rold->from - 1); else { -@@ -558,7 +577,6 @@ skip(int i, int from, char *pr) +@@ -531,7 +546,7 @@ prange(struct range *rold) + * and an artificial dummy difference (trange) must be ginned up to + * correspond to the change reported in the other file. + */ +-void ++static void + keep(int i, struct range *rnew) + { + int delta; +@@ -547,7 +562,7 @@ keep(int i, struct range *rnew) + * skip to just before line number from in file "i". If "pr" is non-NULL, + * print all skipped stuff with string pr as a prefix. + */ +-int ++static int + skip(int i, int from, char *pr) + { + size_t j, n; +@@ -558,7 +573,6 @@ skip(int i, int from, char *pr) trouble(); if (pr != NULL) printf("%s%s", Tflag == 1? "\t" : pr, line); @@ -276,8 +338,12 @@ cline[i]++; } return ((int) n); -@@ -571,7 +589,7 @@ skip(int i, int from, char *pr) - int +@@ -568,10 +582,10 @@ skip(int i, int from, char *pr) + * Return 1 or 0 according as the old range (in file 1) contains exactly + * the same data as the new range (in file 2). + */ +-int ++static int duplicate(struct range *r1, struct range *r2) { - int c,d; @@ -285,13 +351,22 @@ int nchar; int nline; -@@ -606,9 +624,33 @@ repos(int nchar) +@@ -597,7 +611,7 @@ duplicate(struct range *r1, struct range + return (1); + } + +-void ++static void + repos(int nchar) + { + int i; +@@ -606,18 +620,43 @@ repos(int nchar) (void)fseek(fp[i], (long)-nchar, SEEK_CUR); } -__dead void +/* If file has trailing carriage return, remove it. */ -+void ++static void +remove_cr(FILE *f) +{ + char ch; @@ -313,27 +388,30 @@ + rewind(f); +} + -+void ++static void trouble(void) { + errx(EXIT_FAILURE, "logic error"); } -@@ -618,6 +660,7 @@ trouble(void) - int + /* + * collect an editing script for later regurgitation + */ +-int ++static int edit(struct diff *diff, int dup, int j) { + if (((dup + 1) & eflag) == 0) return (j); j++; -@@ -632,10 +675,10 @@ edit(struct diff *diff, int dup, int j) +@@ -632,10 +671,10 @@ edit(struct diff *diff, int dup, int j) } /* regurgitate */ -__dead void -+void ++static void edscript(int n) { - int j,k; @@ -341,7 +419,7 @@ char block[BUFSIZ]; for (n = n; n > 0; n--) { -@@ -657,8 +700,7 @@ edscript(int n) +@@ -657,14 +696,13 @@ edscript(int n) printf("%da\n%s\n.\n", de[n].old.from - 1, f1mark); } } @@ -351,11 +429,18 @@ printf("w\nq\n"); exit(overlapcnt); -@@ -698,13 +740,29 @@ increase(void) + } + +-void ++static void + increase(void) + { + struct diff *p; +@@ -698,13 +736,29 @@ increase(void) szchanges = newsz; } -+void ++static void +help(void) +{ + @@ -375,7 +460,7 @@ +} -__dead void -+void ++static void usage(void) { - extern char *__progname; From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 21:17:39 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id E2746106566C for ; Thu, 14 Jun 2012 21:17:36 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 21:17:36 +0000 Date: Thu, 14 Jun 2012 21:17:36 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614211736.E2746106566C@hub.freebsd.org> Cc: Subject: socsvn commit: r237728 - in soc2012/jhagewood/diff3: . diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 21:17:39 -0000 Author: jhagewood Date: Thu Jun 14 21:17:35 2012 New Revision: 237728 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237728 Log: Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c ============================================================================== --- soc2012/jhagewood/diff3/diff3/diff3prog.c Thu Jun 14 21:04:41 2012 (r237727) +++ soc2012/jhagewood/diff3/diff3/diff3prog.c Thu Jun 14 21:17:35 2012 (r237728) @@ -128,7 +128,7 @@ char *diff_prog = NULL; char *labels[3] = {NULL}; /* - * the latest known correspondence between line numbers of the 3 files + * The latest known correspondence between line numbers of the 3 files * is stored in last[1-3]; */ int last[4]; @@ -167,7 +167,7 @@ #define OPTIONS "3aAeEiL:mTvxX" static struct option longopts[] = { - { "ed", no_argument, NULL, 'e' }, + { "ed", no_argument, NULL, 'e' }, { "show-overlap", no_argument, NULL, 'E' }, { "overlap-only", no_argument, NULL, 'x' }, { "initial-tab", no_argument, NULL, 'T' }, @@ -186,7 +186,6 @@ }; - int main(int argc, char **argv) { @@ -247,16 +246,18 @@ argc -= optind; argv += optind; /* XXX - argc usage seems wrong here */ - if (argc < 5) { + if (argc < 5) usage(); - } if (oflag) { - (void)snprintf(f1mark, sizeof(f1mark), "<<<<<<< %s", labels[0] - != NULL ? labels[0] : argc >= 6 ? argv[5] : argv[2]); - (void)snprintf(f2mark, sizeof(f2mark), "||||||| %s", labels[1] - != NULL ? labels[1] : argc >= 6 ? argv[4] : argv[3]); - (void)snprintf(f3mark, sizeof(f3mark), ">>>>>>> %s", labels[2] - != NULL ? labels[2] : argc >= 7 ? argv[6] : argv[4]); + (void)snprintf(f1mark, sizeof(f1mark), "<<<<<<< %s", + labels[0] != NULL ? labels[0] : + argc >= 6 ? argv[5] : argv[2]); + (void)snprintf(f2mark, sizeof(f2mark), "||||||| %s", + labels[1] != NULL ? labels[1] : + argc >= 6 ? argv[4] : argv[3]); + (void)snprintf(f3mark, sizeof(f3mark), ">>>>>>> %s", + labels[2] != NULL ? labels[2] : + argc >= 7 ? argv[6] : argv[4]); } increase(); m = readin(argv[0], &d13); @@ -380,7 +381,7 @@ d2 = d23; j = 0; - if( (asciifile(fp[0]) && asciifile(fp[1]) && asciifile(fp[2]) ) == 0) { + if ((asciifile(fp[0]) && asciifile(fp[1]) && asciifile(fp[2])) == 0) { printf("Binary file detected; comparison failed\n"); exit(EXIT_FAILURE); } @@ -524,7 +525,7 @@ } /* - * print the range of line numbers, rold.from thru rold.to, as n1,n2 or + * Print the range of line numbers, rold.from thru rold.to, as n1,n2 or * n1. */ static void @@ -740,18 +741,18 @@ help(void) { - printf("%s%s%s%s", - "\t-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE.\n", - "\t-A --show-all Output all changes, bracketing conflicts.\n", - "\t-x --overlap-only Output overlapping changes.\n", + printf("%s", + "\t-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE.\n" + "\t-A --show-all Output all changes, bracketing conflicts.\n" + "\t-x --overlap-only Output overlapping changes.\n" "\t-3 --easy-only Output unmerged nonoverlapping changes.\n\n"); - printf("%s%s%s%s", - "\t-m --merge Output merged file instead of ed script (default -A).\n", - "\t-L LABEL --label=LABEL Use LABEL instead of file name.\n", - "\t-a --text Treat all files as text.\n", + printf("%s", + "\t-m --merge Output merged file instead of ed script (default -A).\n" + "\t-L LABEL --label=LABEL Use LABEL instead of file name.\n" + "\t-a --text Treat all files as text.\n" "\t-T --initial-tab Make tabs line up by prepending a tab.\n\n"); - printf("%s%s", - "\t-v --version Output version info.\n", + printf("%s", + "\t-v --version Output version info.\n" "\t--help Output this help.\n\n"); } Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Thu Jun 14 21:04:41 2012 (r237727) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Thu Jun 14 21:17:35 2012 (r237728) @@ -11,7 +11,7 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-14 05:32:21.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-14 21:04:21.000000000 -0400 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-14 21:15:59.000000000 -0400 @@ -64,19 +64,23 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ @@ -24,7 +24,7 @@ #endif +#endif /* not lint */ +#include -+__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237663 2012-06-14 06:11:59Z jhagewood $"); ++__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237727 2012-06-14 21:04:41Z jhagewood $"); +#include +#include @@ -43,7 +43,16 @@ #include #include -@@ -134,48 +138,52 @@ int strip_cr; +@@ -124,7 +128,7 @@ int cline[3]; /* # of the last-read lin + char *diff_prog = NULL; + char *labels[3] = {NULL}; + /* +- * the latest known correspondence between line numbers of the 3 files ++ * The latest known correspondence between line numbers of the 3 files + * is stored in last[1-3]; + */ + int last[4]; +@@ -134,29 +138,31 @@ int strip_cr; int debug = 0; char f1mark[40], f2mark[40], f3mark[40]; /* markers for -E and -X */ @@ -93,10 +102,7 @@ }; #define OPTIONS "3aAeEiL:mTvxX" - static struct option longopts[] = { -- { "ed", no_argument, NULL, 'e' }, -+ { "ed", no_argument, NULL, 'e' }, - { "show-overlap", no_argument, NULL, 'E' }, +@@ -166,19 +172,20 @@ static struct option longopts[] = { { "overlap-only", no_argument, NULL, 'x' }, { "initial-tab", no_argument, NULL, 'T' }, { "text", no_argument, NULL, 'a' }, @@ -114,12 +120,15 @@ { "diff-program", required_argument, NULL, DIFFPROG_OPT }, - { "version", no_argument, NULL, 'v' }, - { "help", no_argument, NULL, HELP_OPT } -+ -+ - }; +-}; -@@ -216,12 +224,18 @@ main(int argc, char **argv) ++}; ++ + int + main(int argc, char **argv) + { +@@ -216,12 +223,18 @@ main(int argc, char **argv) case 'X': oflag = eflag = 1; break; @@ -138,31 +147,17 @@ case STRIPCR_OPT: strip_cr = 1; break; -@@ -233,27 +247,25 @@ main(int argc, char **argv) - argc -= optind; - argv += optind; +@@ -235,7 +248,6 @@ main(int argc, char **argv) /* XXX - argc usage seems wrong here */ -- if (argc < 5) -+ if (argc < 5) { + if (argc < 5) usage(); - -+ } if (oflag) { -- (void)snprintf(f1mark, sizeof(f1mark), "<<<<<<< %s", -- labels[0] != NULL ? labels[0] : -- argc >= 6 ? argv[5] : argv[2]); -- (void)snprintf(f2mark, sizeof(f2mark), "||||||| %s", -- labels[1] != NULL ? labels[1] : -- argc >= 6 ? argv[4] : argv[3]); -- (void)snprintf(f3mark, sizeof(f3mark), ">>>>>>> %s", -- labels[2] != NULL ? labels[2] : -- argc >= 7 ? argv[6] : argv[4]); -+ (void)snprintf(f1mark, sizeof(f1mark), "<<<<<<< %s", labels[0] -+ != NULL ? labels[0] : argc >= 6 ? argv[5] : argv[2]); -+ (void)snprintf(f2mark, sizeof(f2mark), "||||||| %s", labels[1] -+ != NULL ? labels[1] : argc >= 6 ? argv[4] : argv[3]); -+ (void)snprintf(f3mark, sizeof(f3mark), ">>>>>>> %s", labels[2] -+ != NULL ? labels[2] : argc >= 7 ? argv[6] : argv[4]); + (void)snprintf(f1mark, sizeof(f1mark), "<<<<<<< %s", + labels[0] != NULL ? labels[0] : +@@ -247,13 +259,14 @@ main(int argc, char **argv) + labels[2] != NULL ? labels[2] : + argc >= 7 ? argv[6] : argv[4]); } - increase(); @@ -176,7 +171,7 @@ } merge(m, n); exit(EXIT_SUCCESS); -@@ -265,7 +277,7 @@ main(int argc, char **argv) +@@ -265,7 +278,7 @@ main(int argc, char **argv) * since the vector is processed in one sequential pass. * The vector could be optimized out of existence) */ @@ -185,7 +180,7 @@ readin(char *name, struct diff **dd) { int a, b, c, d, i; -@@ -307,17 +319,18 @@ readin(char *name, struct diff **dd) +@@ -307,17 +320,18 @@ readin(char *name, struct diff **dd) return (i); } @@ -206,7 +201,7 @@ getchange(FILE *b) { char *line; -@@ -329,7 +342,7 @@ getchange(FILE *b) +@@ -329,7 +343,7 @@ getchange(FILE *b) return (NULL); } @@ -215,7 +210,7 @@ getline(FILE *b, size_t *n) { char *cp; -@@ -357,7 +370,7 @@ getline(FILE *b, size_t *n) +@@ -357,7 +371,7 @@ getline(FILE *b, size_t *n) return (buf); } @@ -224,17 +219,17 @@ merge(int m1, int m2) { struct diff *d1, *d2, *d3; -@@ -367,8 +380,7 @@ merge(int m1, int m2) +@@ -367,8 +381,7 @@ merge(int m1, int m2) d2 = d23; j = 0; - if( (asciifile(fp[0]) && asciifile(fp[1]) && asciifile(fp[2]) ) == 0) - { -+ if( (asciifile(fp[0]) && asciifile(fp[1]) && asciifile(fp[2]) ) == 0) { ++ if ((asciifile(fp[0]) && asciifile(fp[1]) && asciifile(fp[2])) == 0) { printf("Binary file detected; comparison failed\n"); exit(EXIT_FAILURE); } -@@ -466,29 +478,29 @@ merge(int m1, int m2) +@@ -466,29 +479,29 @@ merge(int m1, int m2) static int asciifile(FILE *f) { @@ -282,7 +277,7 @@ printf("====%s\n", s); } -@@ -497,9 +509,10 @@ separate(const char *s) +@@ -497,9 +510,10 @@ separate(const char *s) * It is to be printed only if it does not duplicate something to be * printed later. */ @@ -294,14 +289,14 @@ printf("%d:", i); last[i] = rold->to; prange(rold); -@@ -510,12 +523,14 @@ change(int i, struct range *rold, int du +@@ -510,12 +524,14 @@ change(int i, struct range *rold, int du (void)skip(i, rold->to, " "); } -/* - * print the range of line numbers, rold.from thru rold.to, as n1,n2 or n1 +/* -+ * print the range of line numbers, rold.from thru rold.to, as n1,n2 or ++ * Print the range of line numbers, rold.from thru rold.to, as n1,n2 or + * n1. */ -void @@ -312,7 +307,7 @@ if (rold->to <= rold->from) printf("%da\n", rold->from - 1); else { -@@ -531,7 +546,7 @@ prange(struct range *rold) +@@ -531,7 +547,7 @@ prange(struct range *rold) * and an artificial dummy difference (trange) must be ginned up to * correspond to the change reported in the other file. */ @@ -321,7 +316,7 @@ keep(int i, struct range *rnew) { int delta; -@@ -547,7 +562,7 @@ keep(int i, struct range *rnew) +@@ -547,7 +563,7 @@ keep(int i, struct range *rnew) * skip to just before line number from in file "i". If "pr" is non-NULL, * print all skipped stuff with string pr as a prefix. */ @@ -330,7 +325,7 @@ skip(int i, int from, char *pr) { size_t j, n; -@@ -558,7 +573,6 @@ skip(int i, int from, char *pr) +@@ -558,7 +574,6 @@ skip(int i, int from, char *pr) trouble(); if (pr != NULL) printf("%s%s", Tflag == 1? "\t" : pr, line); @@ -338,7 +333,7 @@ cline[i]++; } return ((int) n); -@@ -568,10 +582,10 @@ skip(int i, int from, char *pr) +@@ -568,10 +583,10 @@ skip(int i, int from, char *pr) * Return 1 or 0 according as the old range (in file 1) contains exactly * the same data as the new range (in file 2). */ @@ -351,7 +346,7 @@ int nchar; int nline; -@@ -597,7 +611,7 @@ duplicate(struct range *r1, struct range +@@ -597,7 +612,7 @@ duplicate(struct range *r1, struct range return (1); } @@ -360,7 +355,7 @@ repos(int nchar) { int i; -@@ -606,18 +620,43 @@ repos(int nchar) +@@ -606,18 +621,43 @@ repos(int nchar) (void)fseek(fp[i], (long)-nchar, SEEK_CUR); } @@ -406,7 +401,7 @@ if (((dup + 1) & eflag) == 0) return (j); j++; -@@ -632,10 +671,10 @@ edit(struct diff *diff, int dup, int j) +@@ -632,10 +672,10 @@ edit(struct diff *diff, int dup, int j) } /* regurgitate */ @@ -419,7 +414,7 @@ char block[BUFSIZ]; for (n = n; n > 0; n--) { -@@ -657,14 +696,13 @@ edscript(int n) +@@ -657,14 +697,13 @@ edscript(int n) printf("%da\n%s\n.\n", de[n].old.from - 1, f1mark); } } @@ -436,7 +431,7 @@ increase(void) { struct diff *p; -@@ -698,13 +736,29 @@ increase(void) +@@ -698,13 +737,29 @@ increase(void) szchanges = newsz; } @@ -444,18 +439,18 @@ +help(void) +{ + -+ printf("%s%s%s%s", -+ "\t-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE.\n", -+ "\t-A --show-all Output all changes, bracketing conflicts.\n", -+ "\t-x --overlap-only Output overlapping changes.\n", ++ printf("%s", ++ "\t-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE.\n" ++ "\t-A --show-all Output all changes, bracketing conflicts.\n" ++ "\t-x --overlap-only Output overlapping changes.\n" + "\t-3 --easy-only Output unmerged nonoverlapping changes.\n\n"); -+ printf("%s%s%s%s", -+ "\t-m --merge Output merged file instead of ed script (default -A).\n", -+ "\t-L LABEL --label=LABEL Use LABEL instead of file name.\n", -+ "\t-a --text Treat all files as text.\n", ++ printf("%s", ++ "\t-m --merge Output merged file instead of ed script (default -A).\n" ++ "\t-L LABEL --label=LABEL Use LABEL instead of file name.\n" ++ "\t-a --text Treat all files as text.\n" + "\t-T --initial-tab Make tabs line up by prepending a tab.\n\n"); -+ printf("%s%s", -+ "\t-v --version Output version info.\n", ++ printf("%s", ++ "\t-v --version Output version info.\n" + "\t--help Output this help.\n\n"); +} From owner-svn-soc-all@FreeBSD.ORG Thu Jun 14 21:28:52 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 7E0A0106564A for ; Thu, 14 Jun 2012 21:28:50 +0000 (UTC) (envelope-from tzabal@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 14 Jun 2012 21:28:50 +0000 Date: Thu, 14 Jun 2012 21:28:50 +0000 From: tzabal@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120614212850.7E0A0106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237729 - soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 21:28:52 -0000 Author: tzabal Date: Thu Jun 14 21:28:49 2012 New Revision: 237729 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237729 Log: Fully functional rc.d script crashreportd. It can start the 'command' as a real daemon and the standard arguments (start, stop, restart, rcvar and status) are supported. Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd ============================================================================== --- soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd Thu Jun 14 21:17:35 2012 (r237728) +++ soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd Thu Jun 14 21:28:49 2012 (r237729) @@ -9,13 +9,9 @@ name="crashreportd" rcvar="crashreportd_enable" command="/usr/sbin/${name}" +command_interpreter="/bin/sh" command_args="0<&- 1>/dev/null 2>&1 &" -#pidfile="/var/run/${name}.pid" +pidfile="/var/run/${name}.pid" load_rc_config $name run_rc_command "$1" - -# FIX: Make the rc.d script to support all the default arguments. -# Work: start, rcvar -# Not work: stop, restart, status, (poll?) -# Check with: ps ux | grep crashreportd \ No newline at end of file From owner-svn-soc-all@FreeBSD.ORG Fri Jun 15 01:59:05 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id C2419106566B for ; Fri, 15 Jun 2012 01:59:03 +0000 (UTC) (envelope-from gmiller@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Fri, 15 Jun 2012 01:59:03 +0000 Date: Fri, 15 Jun 2012 01:59:03 +0000 From: gmiller@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120615015903.C2419106566B@hub.freebsd.org> Cc: Subject: socsvn commit: r237736 - in soc2012/gmiller/locking-head: include lib/libthr/thread X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 01:59:06 -0000 Author: gmiller Date: Fri Jun 15 01:59:03 2012 New Revision: 237736 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237736 Log: Add pthread_lockprof_enable_mp() and pthread_lockprof_disable_mp() to turn lock profiling on and off dynamically. Profiling is still enabled by default. Modified: soc2012/gmiller/locking-head/include/pthread_np.h soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Modified: soc2012/gmiller/locking-head/include/pthread_np.h ============================================================================== --- soc2012/gmiller/locking-head/include/pthread_np.h Thu Jun 14 22:19:23 2012 (r237735) +++ soc2012/gmiller/locking-head/include/pthread_np.h Fri Jun 15 01:59:03 2012 (r237736) @@ -90,6 +90,9 @@ void pthread_getstatistics_begin_np(struct pthread_statistics_np *); int pthread_getstatistics_next_np(struct pthread_statistics_np *); void pthread_getstatistics_end_np(struct pthread_statistics_np *); +void pthread_resetstatistics_np(void); +void pthread_lockprof_enable_np(void); +void pthread_lockprof_disable_np(void); #endif Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Thu Jun 14 22:19:23 2012 (r237735) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Fri Jun 15 01:59:03 2012 (r237736) @@ -62,7 +62,8 @@ struct timespec wait_time; }; -LIST_HEAD(acq_head, acquisition) acq_head = LIST_HEAD_INITIALIZER(acq_head); +static LIST_HEAD(acq_head, acquisition) acq_head = + LIST_HEAD_INITIALIZER(acq_head); struct acq_point_head mutex_hash[LOCK_PROF_HASH_SIZE]; @@ -71,6 +72,8 @@ struct acquisition_point *last_record; }; +static int lockprof_enabled; + void _lock_profile_init() { @@ -79,6 +82,8 @@ for (i = 0; i < LOCK_PROF_HASH_SIZE; i++) { SLIST_INIT(&mutex_hash[i]); } + + lockprof_enabled = 1; } static struct acquisition * @@ -132,7 +137,7 @@ struct pthread *curthread = _get_curthread(); struct acquisition *acq; - if (file == NULL) { + if (file == NULL || !lockprof_enabled) { return; } @@ -163,7 +168,7 @@ _mutex_obtain_failed(struct pthread_mutex *m, struct timespec *wait_time, const char *file) { - if (file == NULL) { + if (file == NULL || !lockprof_enabled) { return; } @@ -360,4 +365,16 @@ } } +void +pthread_lockprof_enable_np() +{ + lockprof_enabled = 1; +} + +void +pthread_lockprof_disable_np() +{ + lockprof_enabled = 0; +} + #endif /* LOCK_PROFILING */ From owner-svn-soc-all@FreeBSD.ORG Fri Jun 15 02:30:18 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 05224106566C for ; Fri, 15 Jun 2012 02:30:16 +0000 (UTC) (envelope-from tzabal@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Fri, 15 Jun 2012 02:30:16 +0000 Date: Fri, 15 Jun 2012 02:30:16 +0000 From: tzabal@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120615023016.05224106566C@hub.freebsd.org> Cc: Subject: socsvn commit: r237738 - in soc2012/tzabal/server-side/akcrs-release/9.0.0: etc/rc.d usr.sbin/crashreportd X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 02:30:18 -0000 Author: tzabal Date: Fri Jun 15 02:30:15 2012 New Revision: 237738 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237738 Log: * Remove the /usr.sbin/crashreportd/crashreportd.sh file * Add the /usr.sbin/crashreportd/crashreportd.php file * Modify the /usr.sbin/crashreportd/Makefile * Modify the /etc/rc.d/crashreportd file Added: soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/crashreportd.php (contents, props changed) Deleted: soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/crashreportd.sh Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/Makefile Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd ============================================================================== --- soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd Fri Jun 15 01:15:59 2012 (r237737) +++ soc2012/tzabal/server-side/akcrs-release/9.0.0/etc/rc.d/crashreportd Fri Jun 15 02:30:15 2012 (r237738) @@ -9,7 +9,7 @@ name="crashreportd" rcvar="crashreportd_enable" command="/usr/sbin/${name}" -command_interpreter="/bin/sh" +command_interpreter="/usr/local/bin/php" command_args="0<&- 1>/dev/null 2>&1 &" pidfile="/var/run/${name}.pid" Modified: soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/Makefile ============================================================================== --- soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/Makefile Fri Jun 15 01:15:59 2012 (r237737) +++ soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/Makefile Fri Jun 15 02:30:15 2012 (r237738) @@ -1,3 +1,3 @@ -SCRIPTS= crashreportd.sh +SCRIPTS= crashreportd.php .include Added: soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/crashreportd.php ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/tzabal/server-side/akcrs-release/9.0.0/usr.sbin/crashreportd/crashreportd.php Fri Jun 15 02:30:15 2012 (r237738) @@ -0,0 +1,22 @@ +#!/usr/local/bin/php + From owner-svn-soc-all@FreeBSD.ORG Fri Jun 15 11:39:04 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 17453106566B for ; Fri, 15 Jun 2012 11:39:02 +0000 (UTC) (envelope-from scher@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Fri, 15 Jun 2012 11:39:02 +0000 Date: Fri, 15 Jun 2012 11:39:02 +0000 From: scher@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120615113902.17453106566B@hub.freebsd.org> Cc: Subject: socsvn commit: r237765 - soc2012/scher/par_ports/head/Mk X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 11:39:04 -0000 Author: scher Date: Fri Jun 15 11:39:01 2012 New Revision: 237765 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237765 Log: [docs] [new_feature] user configirable ${CHECK_ACTIVE_TIMEOUT} [fixed] ${MK} uses default umask when creating ${LOCK_DIR} Modified: soc2012/scher/par_ports/head/Mk/bsd.parallel.mk soc2012/scher/par_ports/head/Mk/bsd.port.mk Modified: soc2012/scher/par_ports/head/Mk/bsd.parallel.mk ============================================================================== --- soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Fri Jun 15 10:38:14 2012 (r237764) +++ soc2012/scher/par_ports/head/Mk/bsd.parallel.mk Fri Jun 15 11:39:01 2012 (r237765) @@ -14,6 +14,12 @@ # matter what value is assigned. # Example: _parv_WANT_PARALLEL_BUILD=yes # +# CHECK_ACTIVE_TIMEOUT - timeout in seconds before next check of active +# builds in case if port is prohibit to spawn +# another background process. Consider that this +# variable is also used in non-parallel build. +# Default: 2 +# # _parv_WAIT_FOR_LOCK_TIME - time in seconds to wait if lock file is locked # by lockf(1) in case of directory locking. # Default: 5 Modified: soc2012/scher/par_ports/head/Mk/bsd.port.mk ============================================================================== --- soc2012/scher/par_ports/head/Mk/bsd.port.mk Fri Jun 15 10:38:14 2012 (r237764) +++ soc2012/scher/par_ports/head/Mk/bsd.port.mk Fri Jun 15 11:39:01 2012 (r237765) @@ -1124,6 +1124,23 @@ # has been specified in distinfo. This is useful # when using an alternate FETCH_CMD. # +############### PAR_PORTS SPECIFIC COMMENT LINE ############### +# Parallel ports build vriables +# +# _parv_WANT_PARALLEL_BUILD +# - trigger for parallel ports installation. Set this variable to +# some value to enable parallel ports build/install. +# It does not matter what value is assigned. +# Example: _parv_WANT_PARALLEL_BUILD=yes +# +# CHECK_ACTIVE_TIMEOUT +# - timeout in seconds before next check of active builds in case +# if port is prohibit to spawn another background process. +# Consider that this variable is also used in non-parallel build. +# Default: 2 +# +############### ENDF OF PAR_PORTS SPECIFIC COMMENT LINE ############### +# # End of the list of all variables that need to be defined in a port. # Most port authors should not need to understand anything after this point. # @@ -1142,9 +1159,8 @@ .include "${PORTSDIR}/Mk/bsd.commands.mk" ############### PAR_PORTS SPECIFIC COMMENT LINE ############### -# _parv_WANT_PARALLEL_BUILD - assign this variable any value if port want to enable -# parallel build/install features. -# + +CHECK_ACTIVE_TIMEOUT?= 2 .if defined(_parv_WANT_PARALLEL_BUILD) .include "${PORTSDIR}/Mk/bsd.parallel.mk" @@ -1169,6 +1185,7 @@ check-active-build-conflicts: @${DO_NADA} .endif + ############### ENDF OF PAR_PORTS SPECIFIC COMMENT LINE ############### # @@ -1518,7 +1535,7 @@ .include "${PORTSDIR}/Mk/bsd.ncurses.mk" .endif -############### PAR_PORTS SPECIFIC COMMENT LINE ############### +############### PAR_PORTS SPECIFIC COMMENT LINE ############### # .if defined(_parv_WANT_PARALLEL_BUILD) || !defined(IGNORE_PATH_CHECKS) .BEGIN: @@ -1527,7 +1544,7 @@ ${_dparv_START_OUTPUT}; \ ${ECHO_CMD} "Creating lock dir"; \ ${_dparv_END_OUTPUT}; \ - ${MKDIR} -m ${_parv_UMASK} ${LOCK_DIR}; \ + ${MKDIR} ${LOCK_DIR}; \ fi . if ${_parv_IS_DEFAULT_TARGET} . if defined(INSTALLS_DEPENDS) @@ -5028,13 +5045,10 @@ .endif ############### PAR_PORTS SPECIFIC COMMENT LINE ############### -# $${active_builds} - a list of "pid:path:dir[:target]" or "pid:lib:dir[:target]" -# tuples of all currently processed ports, spawned by this make process -# $${notfound} codes : 0 - dep found -# 1 - dep not found -# ${_parv_ON_LOCK_EXIT_STATUS} - dep is locked -# $${spawned} - sets to background process PID if any process was ran -# in background. +# +# $${spawned} - sets to background process PID if any process was ran +# in background. +# ############### END OF PAR_PORTS SPECIFIC COMMENT LINE ############### _INSTALL_DEPENDS= \ @@ -5061,6 +5075,22 @@ (cd $$dir; ${MAKE} -DINSTALLS_DEPENDS $$target $$depends_args 2>> $${log_file} >> $${log_file} ) & spawned=$$!; \ fi; \ +############### PAR_PORTS SPECIFIC COMMENT LINE ############### +# +# _PROCESS_ACTIVE_BUILDS - this script contains all magic, related to +# processing of background dependecy builds. +# +# $${builds_num} - current number of spawned background dependecy +# builds. If $${builds_num} < ${_parv_PARALLEL_BUILDS_NUMBER} +# then another background dependency build will be +# spawned, if there is any dependency to be spawned. +# Otherwise "sleep ${CHECK_ACTIVE_TIMEOUT}" will be called. +# $${active_builds} - a list of "pid:path:dir[:target]" or "pid:lib:dir[:target]" +# tuples of all currently being processed ports, +# spawned by this make process. +# +############### END OF PAR_PORTS SPECIFIC COMMENT LINE ############### + _PROCESS_ACTIVE_BUILDS= \ echo "---- dependency output ----- : --- ENTER _PROCESS_ACTIVE_BUILDS SECTION "; \ while true; do \ @@ -5116,11 +5146,29 @@ if { [ $${builds_num} -eq ${_parv_PARALLEL_BUILDS_NUMBER} ] || \ ( [ $${builds_num} -gt 0 ] && [ $${\#depends} -eq 0 ] ); }; then \ echo "---- dependency output ----- : CAN'T SPAWN MORE DEPS! SLEEP... "; \ - sleep 2; \ + sleep ${CHECK_ACTIVE_TIMEOUT}; \ fi; \ done; \ echo "---- dependency output ----- : --- LEAVE _PROCESS_ACTIVE_BUILDS SECTION " +############### PAR_PORTS SPECIFIC COMMENT LINE ############### +# +# _TERMINATE_PROCESS_TREE - this script contains all magic, related to +# terminating of the whole process tree, starting +# from ${.MAKE.PID}. +# This script implements Breadth-first traversal of +# the process tree. It prevents processes of the +# current level from evaluation of any commands using +# STOP signal. Then it determines children of +# processes of the current level of process tree +# and stops them and so forth... +# It is necessary to stop processes to avoid new +# untracked pids. Finally, this script kills $${pids_to_kill} +# +# $${pids_to_kill} - all pids of the process tree, starting from ${.MAKE.PID} +# +############### END OF PAR_PORTS SPECIFIC COMMENT LINE ############### + _TERMINATE_PROCESS_TREE= \ ${_dparv_START_OUTPUT}; \ ${ECHO_CMD} Terminating process tree strating from ${.MAKE.PID}; \ @@ -5145,6 +5193,14 @@ ${_dparv_START_OUTPUT}; \ /bin/kill -KILL $${pids_to_kill} 2> /dev/null || ${DO_NADA} +############### PAR_PORTS SPECIFIC COMMENT LINE ############### +# +# $${notfound} codes : 0 - dep found +# 1 - dep not found +# ${_parv_ON_LOCK_EXIT_STATUS} - dep is locked +# +############### END OF PAR_PORTS SPECIFIC COMMENT LINE ############### + .for deptype in PKG EXTRACT PATCH FETCH BUILD RUN ${deptype:L}-depends: .if defined(${deptype}_DEPENDS) From owner-svn-soc-all@FreeBSD.ORG Fri Jun 15 14:22:16 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 780B91065675 for ; Fri, 15 Jun 2012 14:22:14 +0000 (UTC) (envelope-from gpf@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Fri, 15 Jun 2012 14:22:14 +0000 Date: Fri, 15 Jun 2012 14:22:14 +0000 From: gpf@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120615142214.780B91065675@hub.freebsd.org> Cc: Subject: socsvn commit: r237766 - soc2012/gpf/pefs_kmod/sys/fs/pefs X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 14:22:16 -0000 Author: gpf Date: Fri Jun 15 14:22:12 2012 New Revision: 237766 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237766 Log: - lookup a file in the checksum index tables when a new pefs vnode is created as a result of a VOP_LOOKUP. Modified: soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs.h soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vnops.c Modified: soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs.h ============================================================================== --- soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs.h Fri Jun 15 11:39:01 2012 (r237765) +++ soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs.h Fri Jun 15 14:22:12 2012 (r237766) @@ -123,6 +123,12 @@ #define PEFS_CFH_SIZE 16 #define PEFS_HT_CELL_SIZE 16 +struct pefs_checksum_index_entry { + uint32_t pcie_nhashes; + uint32_t pcie_offset; + uint64_t pcie_file_id; +}; + struct pefs_checksum { uint8_t pcs_version; uint8_t pcs_reserved; @@ -149,6 +155,7 @@ void *pn_buf_large; int pn_flags; struct pefs_tkey pn_tkey; + void *pn_checksum_index_entry; }; #define PM_ROOT_CANRECURSE 0x01 Modified: soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vnops.c ============================================================================== --- soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vnops.c Fri Jun 15 11:39:01 2012 (r237765) +++ soc2012/gpf/pefs_kmod/sys/fs/pefs/pefs_vnops.c Fri Jun 15 14:22:12 2012 (r237766) @@ -56,6 +56,8 @@ #include #include #include +#include +#include #include #include #include @@ -470,10 +472,103 @@ return (0); } +/* + * XXXgpf: [TODO] move most, if not all, of the checksum code to a different .c + */ +static uint32_t +pefs_checksum_hash1(struct pefs_checksum *pc, struct pefs_checksum_index_entry *pcie) +{ + uint32_t nbucket; + + nbucket = pcie->pcie_file_id % pc->pcs_hash_table_size; + printf("hash1: goto bucket %d\n", nbucket); + return (nbucket); +} + +static uint32_t +pefs_checksum_hash2(struct pefs_checksum *pc, struct pefs_checksum_index_entry *pcie) +{ + uint32_t nbucket; + + nbucket = fnv_64_buf(&(pcie->pcie_file_id), sizeof(pcie->pcie_file_id), FNV1_64_INIT) + % pc->pcs_hash_table_size; + printf("hash2: goto bucket %d\n", nbucket); + + return (nbucket); +} + +static void +pefs_checksum_index_lookup(struct pefs_checksum_index_entry *pcie, struct vnode *vp) +{ + struct pefs_checksum_index_entry target_pcie; + struct pefs_mount *pm = VFS_TO_PEFS(vp->v_mount); + struct pefs_checksum *pcs = &(pm->pm_checksum); + struct pefs_node *pn = VP_TO_PN(vp); + char *start, *p; + uint32_t pos; + + pos = pefs_checksum_hash1(pcs, pcie); + start = &(pcs->pcs_table1[pos * PEFS_HT_CELL_SIZE]); + p = start; + + memcpy(&(target_pcie.pcie_nhashes), p, sizeof(target_pcie.pcie_nhashes)); + target_pcie.pcie_nhashes = le32toh(target_pcie.pcie_nhashes); + if (target_pcie.pcie_nhashes != 0) { + p+=sizeof(target_pcie.pcie_nhashes); + + memcpy(&(target_pcie.pcie_offset), p, sizeof(target_pcie.pcie_offset)); + target_pcie.pcie_offset = le32toh(target_pcie.pcie_offset); + p+=sizeof(target_pcie.pcie_offset); + + memcpy(&(target_pcie.pcie_file_id), p, sizeof(target_pcie.pcie_file_id)); + target_pcie.pcie_file_id = le64toh(target_pcie.pcie_file_id); + printf("cell %d:\n", pos); + printf("\thashes = %d\n\toffset = %d\n\tfile id = %llu\n", + target_pcie.pcie_nhashes, target_pcie.pcie_offset, target_pcie.pcie_file_id); + + if (target_pcie.pcie_file_id == pcie->pcie_file_id) { + pn->pn_checksum_index_entry = start; + printf("checksum lookup: found1!\n"); + return; + } + } + + pos = pefs_checksum_hash2(pcs, pcie); + start = &(pcs->pcs_table2[pos * PEFS_HT_CELL_SIZE]); + p = start; + + memcpy(&(target_pcie.pcie_nhashes), p, sizeof(target_pcie.pcie_nhashes)); + target_pcie.pcie_nhashes = le32toh(target_pcie.pcie_nhashes); + if (target_pcie.pcie_nhashes != 0) { + p+=sizeof(target_pcie.pcie_nhashes); + + memcpy(&(target_pcie.pcie_offset), p, sizeof(target_pcie.pcie_offset)); + target_pcie.pcie_offset = le32toh(target_pcie.pcie_offset); + p+=sizeof(target_pcie.pcie_offset); + + memcpy(&(target_pcie.pcie_file_id), p, sizeof(target_pcie.pcie_file_id)); + target_pcie.pcie_file_id = le64toh(target_pcie.pcie_file_id); + printf("cell %d:\n", pos); + printf("\thashes = %d\n\toffset = %d\n\tfile id = %llu\n", + target_pcie.pcie_nhashes, target_pcie.pcie_offset, target_pcie.pcie_file_id); + + if (target_pcie.pcie_file_id == pcie->pcie_file_id) { + pn->pn_checksum_index_entry = start; + printf("checksum lookup: found2!\n"); + return; + } + } + + printf("checksum lookup: not found!\n"); + pn->pn_checksum_index_entry = NULL; +} + static int pefs_lookup(struct vop_cachedlookup_args *ap) { + struct pefs_checksum_index_entry pcie; struct componentname *cnp = ap->a_cnp; + struct pefs_mount *pm; struct vnode *vp = NULL; struct vnode *lvp = NULL; struct vnode *dvp = ap->a_dvp; @@ -481,10 +576,12 @@ struct pefs_enccn enccn; struct pefs_node *dpn = VP_TO_PN(dvp); uint64_t flags = cnp->cn_flags; + char *enc_name, *buf; int nokey_lookup, skip_lookup; - int error; + int error, r; + size_t enc_name_len, buf_len; - PEFSDEBUG("pefs_lookup: op=%lx, name=%.*s\n", + printf("pefs_lookup: op=%lx, name=%.*s\n", cnp->cn_nameiop, (int)cnp->cn_namelen, cnp->cn_nameptr); pefs_enccn_init(&enccn); @@ -557,9 +654,53 @@ else error = pefs_node_get_haskey(dvp->v_mount, lvp, &vp, &enccn.pec_tkey); + if (error != 0) { vput(lvp); } else { + pm = VFS_TO_PEFS(vp->v_mount); + if ((pm->pm_flags & PM_CHECKSUM) != 0 && cnp->cn_nameiop == LOOKUP && + (vp->v_type == VREG || vp->v_type == VLNK)) { + printf("gpf: checksum code @ lookup\n"); + if (nokey_lookup) { + printf("cnp name=%.*s\n",(int)cnp->cn_namelen, cnp->cn_nameptr); + enc_name = cnp->cn_nameptr; + enc_name_len = cnp->cn_namelen; + } + else { + printf("enccnp name=%.*s\n",(int)enccn.pec_cn.cn_namelen, enccn.pec_cn.cn_nameptr); + enc_name = enccn.pec_cn.cn_nameptr; + enc_name_len = enccn.pec_cn.cn_namelen; + } + + /* XXXgpf: What if user wants integrity checking for .pefs.db or .conf? */ + /* XXXgpf: [TODO] move this check to a mini function */ + if (strncmp(enc_name, ".pefs.db", enc_name_len) != 0 && + strncmp(enc_name, ".pefs.conf", enc_name_len) != 0 && + strncmp(enc_name, ".pefs.checksum", enc_name_len) != 0) + { + enc_name++; + enc_name_len--; + buf_len = MAXNAMLEN + 1; + buf = malloc(buf_len, M_TEMP, M_WAITOK); + + r = pefs_name_pton(enc_name, enc_name_len, buf, buf_len); + if (r <= 0) { + /* XXXgpf: I sincerely doubt an error can occur here */ + error = EINVAL; + printf("name_pton error: %d\n", error); + } + else { + memcpy(&(pcie.pcie_file_id), buf, sizeof(pcie.pcie_file_id)); + pcie.pcie_file_id = be64toh(pcie.pcie_file_id); + printf("id to lookup: %llu\n", pcie.pcie_file_id); + pefs_checksum_index_lookup(&pcie, vp); + } + + free(buf, M_TEMP); + } + + } *ap->a_vpp = vp; if ((cnp->cn_flags & MAKEENTRY) && cnp->cn_nameiop != CREATE) From owner-svn-soc-all@FreeBSD.ORG Fri Jun 15 18:23:04 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 509B51065677 for ; Fri, 15 Jun 2012 18:23:02 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Fri, 15 Jun 2012 18:23:02 +0000 Date: Fri, 15 Jun 2012 18:23:02 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120615182302.509B51065677@hub.freebsd.org> Cc: Subject: socsvn commit: r237773 - in soc2012/jhagewood/diff3: . diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 18:23:04 -0000 Author: jhagewood Date: Fri Jun 15 18:23:01 2012 New Revision: 237773 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237773 Log: Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/diff3/diff3/diff3prog.c ============================================================================== --- soc2012/jhagewood/diff3/diff3/diff3prog.c Fri Jun 15 17:31:15 2012 (r237772) +++ soc2012/jhagewood/diff3/diff3/diff3prog.c Fri Jun 15 18:23:01 2012 (r237773) @@ -224,7 +224,7 @@ oflag = eflag = 1; break; case 'v': - printf("OpenBSD diff3 1.11-FreeBSD"); + /* To do. */ exit(0); case 'x': eflag = 1; Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Fri Jun 15 17:31:15 2012 (r237772) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Fri Jun 15 18:23:01 2012 (r237773) @@ -11,7 +11,7 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-14 05:32:21.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-14 21:15:59.000000000 -0400 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-15 18:22:42.000000000 -0400 @@ -64,19 +64,23 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ @@ -24,7 +24,7 @@ #endif +#endif /* not lint */ +#include -+__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237727 2012-06-14 21:04:41Z jhagewood $"); ++__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237728 2012-06-14 21:17:35Z jhagewood $"); +#include +#include @@ -133,7 +133,7 @@ oflag = eflag = 1; break; + case 'v': -+ printf("OpenBSD diff3 1.11-FreeBSD"); ++ /* To do. */ + exit(0); case 'x': eflag = 1; From owner-svn-soc-all@FreeBSD.ORG Fri Jun 15 20:57:03 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 2B9221065673 for ; Fri, 15 Jun 2012 20:57:01 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Fri, 15 Jun 2012 20:57:01 +0000 Date: Fri, 15 Jun 2012 20:57:01 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120615205701.2B9221065673@hub.freebsd.org> Cc: Subject: socsvn commit: r237776 - in soc2012/jhagewood: diff diff/diff diff3 X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 20:57:03 -0000 Author: jhagewood Date: Fri Jun 15 20:57:00 2012 New Revision: 237776 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237776 Log: Modified: soc2012/jhagewood/diff/diff/diffreg.c soc2012/jhagewood/diff/hagewood-diff.patch soc2012/jhagewood/diff3/hagewood-diff3.patch Modified: soc2012/jhagewood/diff/diff/diffreg.c ============================================================================== --- soc2012/jhagewood/diff/diff/diffreg.c Fri Jun 15 19:42:49 2012 (r237775) +++ soc2012/jhagewood/diff/diff/diffreg.c Fri Jun 15 20:57:00 2012 (r237776) @@ -90,6 +90,12 @@ #include "diff.h" #include "pathnames.h" +#ifdef ST_MTIM_NSEC +# define TIMESPEC_NS(timespec) ((timespec).ST_MTIM_NSEC) +#else +# define TIMESPEC_NS(timespec) 0 +#endif + /* * diff - compare two files. */ @@ -823,7 +829,7 @@ } break; /* ignore-tab-expansion */ - } else if (Eflag) { + } /*else if (Eflag) { if (c == '\t' && d == ' ') { fgetpos(f2, &position); for (j = 1; j <= 7; j++) { @@ -833,7 +839,7 @@ } fsetpos(f2, &position); if (spacetab) { - /* Ignore tab expression? */ + } } if (d == '\t' && c == ' ') { @@ -845,11 +851,11 @@ } fsetpos(f1, &position); if (spacetab) { - /* Ignore tab expression? */ + } } break; - } + } */ if (chrtran[c] != chrtran[d]) { jackpot++; J[i] = 0; @@ -1576,13 +1582,18 @@ print_header(const char *file1, const char *file2) { const char *time_format; - struct tm *tm_ptr1, *tm_ptr2; char buf1[256]; char buf2[256]; + char end1[10]; + char end2[10]; + struct tm *tm_ptr1, *tm_ptr2; + int nsec1 = TIMESPEC_NS (stb1.st_mtime); + int nsec2 = TIMESPEC_NS (stb2.st_mtime); + #ifdef ST_MTIM_NSEC - time_format = "%Y-%m-%d %H:%M:%S.%N %z"; + time_format = "%Y-%m-%d %H:%M:%S.%N"; #else - time_format = "%Y-%m-%d %H:%M:%S %z"; + time_format = "%Y-%m-%d %H:%M:%S"; #endif if (cflag) @@ -1591,7 +1602,10 @@ tm_ptr2 = localtime(&stb2.st_mtime); strftime(buf1, 256, time_format, tm_ptr1); strftime(buf2, 256, time_format, tm_ptr2); - + strftime(end1, 10, "%z", tm_ptr1); + strftime(end2, 10, "%z", tm_ptr2); + sprintf(buf1, "%s.%.9d %s", buf1, nsec1, end1); + sprintf(buf2, "%s.%.9d %s", buf2, nsec2, end2); if (label[0] != NULL) printf("%s %s\n", format == D_CONTEXT ? "***" : "---", label[0]); Modified: soc2012/jhagewood/diff/hagewood-diff.patch ============================================================================== --- soc2012/jhagewood/diff/hagewood-diff.patch Fri Jun 15 19:42:49 2012 (r237775) +++ soc2012/jhagewood/diff/hagewood-diff.patch Fri Jun 15 20:57:00 2012 (r237776) @@ -82,8 +82,21 @@ extern int format, context, status; diff -rupN jhagewood/diff/diff-orig/diffreg.c jhagewood/diff/diff/diffreg.c --- jhagewood/diff/diff-orig/diffreg.c 2012-06-10 03:31:05.000000000 -0400 -+++ jhagewood/diff/diff/diffreg.c 2012-06-14 04:59:34.000000000 -0400 -@@ -748,12 +748,14 @@ unravel(int p) ++++ jhagewood/diff/diff/diffreg.c 2012-06-15 20:54:20.000000000 -0400 +@@ -90,6 +90,12 @@ __FBSDID("$FreeBSD"); + #include "diff.h" + #include "pathnames.h" + ++#ifdef ST_MTIM_NSEC ++# define TIMESPEC_NS(timespec) ((timespec).ST_MTIM_NSEC) ++#else ++# define TIMESPEC_NS(timespec) 0 ++#endif ++ + /* + * diff - compare two files. + */ +@@ -748,12 +754,14 @@ unravel(int p) static void check(char *file1, FILE *f1, char *file2, FILE *f2) { @@ -100,7 +113,7 @@ ixold[0] = ixnew[0] = 0; jackpot = 0; ctold = ctnew = 0; -@@ -766,7 +768,7 @@ check(char *file1, FILE *f1, char *file2 +@@ -766,7 +774,7 @@ check(char *file1, FILE *f1, char *file2 ixnew[j] = ctnew += skipline(f2); j++; } @@ -109,7 +122,7 @@ for (;;) { c = getc(f1); d = getc(f2); -@@ -803,27 +805,49 @@ check(char *file1, FILE *f1, char *file2 +@@ -803,29 +811,51 @@ check(char *file1, FILE *f1, char *file2 } } else if (Bflag) { @@ -136,9 +149,10 @@ - } - -+ break; + break; +- } + /* ignore-tab-expansion */ -+ } else if (Eflag) { ++ } /*else if (Eflag) { + if (c == '\t' && d == ' ') { + fgetpos(f2, &position); + for (j = 1; j <= 7; j++) { @@ -148,7 +162,7 @@ + } + fsetpos(f2, &position); + if (spacetab) { -+ /* Ignore tab expression? */ ++ + } + } + if (d == '\t' && c == ' ') { @@ -160,13 +174,15 @@ + } + fsetpos(f1, &position); + if (spacetab) { -+ /* Ignore tab expression? */ ++ + } + } - break; - } ++ break; ++ } */ if (chrtran[c] != chrtran[d]) { -@@ -859,7 +883,7 @@ check(char *file1, FILE *f1, char *file2 + jackpot++; + J[i] = 0; +@@ -859,7 +889,7 @@ check(char *file1, FILE *f1, char *file2 ixnew[j] = ctnew; j++; } @@ -175,18 +191,23 @@ ixnew[j] = ctnew += skipline(f2); /* * if (jackpot) -@@ -1551,16 +1575,33 @@ dump_unified_vec(FILE *f1, FILE *f2) +@@ -1551,16 +1581,41 @@ dump_unified_vec(FILE *f1, FILE *f2) static void print_header(const char *file1, const char *file2) { + const char *time_format; -+ struct tm *tm_ptr1, *tm_ptr2; + char buf1[256]; + char buf2[256]; ++ char end1[10]; ++ char end2[10]; ++ struct tm *tm_ptr1, *tm_ptr2; ++ int nsec1 = TIMESPEC_NS (stb1.st_mtime); ++ int nsec2 = TIMESPEC_NS (stb2.st_mtime); ++ +#ifdef ST_MTIM_NSEC -+ time_format = "%Y-%m-%d %H:%M:%S.%N %z"; ++ time_format = "%Y-%m-%d %H:%M:%S.%N"; +#else -+ time_format = "%Y-%m-%d %H:%M:%S %z"; ++ time_format = "%Y-%m-%d %H:%M:%S"; +#endif + + if (cflag) @@ -195,7 +216,10 @@ + tm_ptr2 = localtime(&stb2.st_mtime); + strftime(buf1, 256, time_format, tm_ptr1); + strftime(buf2, 256, time_format, tm_ptr2); -+ ++ strftime(end1, 10, "%z", tm_ptr1); ++ strftime(end2, 10, "%z", tm_ptr2); ++ sprintf(buf1, "%s.%.9d %s", buf1, nsec1, end1); ++ sprintf(buf2, "%s.%.9d %s", buf2, nsec2, end2); if (label[0] != NULL) printf("%s %s\n", format == D_CONTEXT ? "***" : "---", - label[0]); Modified: soc2012/jhagewood/diff3/hagewood-diff3.patch ============================================================================== --- soc2012/jhagewood/diff3/hagewood-diff3.patch Fri Jun 15 19:42:49 2012 (r237775) +++ soc2012/jhagewood/diff3/hagewood-diff3.patch Fri Jun 15 20:57:00 2012 (r237776) @@ -11,7 +11,7 @@ .include diff -rupN jhagewood/diff3/diff3-orig/diff3prog.c jhagewood/diff3/diff3/diff3prog.c --- jhagewood/diff3/diff3-orig/diff3prog.c 2012-06-14 05:32:21.000000000 -0400 -+++ jhagewood/diff3/diff3/diff3prog.c 2012-06-15 18:22:42.000000000 -0400 ++++ jhagewood/diff3/diff3/diff3prog.c 2012-06-15 18:23:03.000000000 -0400 @@ -64,19 +64,23 @@ * @(#)diff3.c 8.1 (Berkeley) 6/6/93 */ @@ -24,7 +24,7 @@ #endif +#endif /* not lint */ +#include -+__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237728 2012-06-14 21:17:35Z jhagewood $"); ++__FBSDID("$FreeBSD: soc2012/jhagewood/diff3/diff3/diff3prog.c 237773 2012-06-15 18:23:01Z jhagewood $"); +#include +#include From owner-svn-soc-all@FreeBSD.ORG Fri Jun 15 20:59:26 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id EAC5B106578E for ; Fri, 15 Jun 2012 20:59:24 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Fri, 15 Jun 2012 20:59:24 +0000 Date: Fri, 15 Jun 2012 20:59:24 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120615205924.EAC5B106578E@hub.freebsd.org> Cc: Subject: socsvn commit: r237777 - soc2012/jhagewood X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 20:59:26 -0000 Author: jhagewood Date: Fri Jun 15 20:59:24 2012 New Revision: 237777 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237777 Log: Deleted: soc2012/jhagewood/ From owner-svn-soc-all@FreeBSD.ORG Fri Jun 15 20:59:36 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id A8B36106564A for ; Fri, 15 Jun 2012 20:59:35 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Fri, 15 Jun 2012 20:59:35 +0000 Date: Fri, 15 Jun 2012 20:59:35 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120615205935.A8B36106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237778 - soc2012/jhagewood X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 20:59:36 -0000 Author: jhagewood Date: Fri Jun 15 20:59:35 2012 New Revision: 237778 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237778 Log: Added: soc2012/jhagewood/ From owner-svn-soc-all@FreeBSD.ORG Fri Jun 15 21:01:10 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 7873F106566B for ; Fri, 15 Jun 2012 21:01:08 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Fri, 15 Jun 2012 21:01:08 +0000 Date: Fri, 15 Jun 2012 21:01:08 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120615210108.7873F106566B@hub.freebsd.org> Cc: Subject: socsvn commit: r237782 - in soc2012/jhagewood: . diff diff/diff diff/diff-orig diff/gabor_diff diff3 diff3/diff3 diff3/diff3-orig mdocml mdocml/mdocml-1.12.1 mdocml/mdocml-1.12.1-orig mdocml/ports-... X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 21:01:10 -0000 Author: jhagewood Date: Fri Jun 15 21:01:07 2012 New Revision: 237782 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237782 Log: Added: soc2012/jhagewood/Milestones soc2012/jhagewood/diff/ soc2012/jhagewood/diff/TODO soc2012/jhagewood/diff/diff/ soc2012/jhagewood/diff/diff-orig/ soc2012/jhagewood/diff/diff-orig/Makefile soc2012/jhagewood/diff/diff-orig/diff (contents, props changed) soc2012/jhagewood/diff/diff-orig/diff.1 soc2012/jhagewood/diff/diff-orig/diff.1.gz (contents, props changed) soc2012/jhagewood/diff/diff-orig/diff.c soc2012/jhagewood/diff/diff-orig/diff.h soc2012/jhagewood/diff/diff-orig/diffdir.c soc2012/jhagewood/diff/diff-orig/diffreg.c soc2012/jhagewood/diff/diff-orig/pathnames.h soc2012/jhagewood/diff/diff/Makefile soc2012/jhagewood/diff/diff/diff (contents, props changed) soc2012/jhagewood/diff/diff/diff.1 soc2012/jhagewood/diff/diff/diff.1.gz (contents, props changed) soc2012/jhagewood/diff/diff/diff.c soc2012/jhagewood/diff/diff/diff.h soc2012/jhagewood/diff/diff/diffdir.c soc2012/jhagewood/diff/diff/diffreg.c soc2012/jhagewood/diff/diff/pathnames.h soc2012/jhagewood/diff/gabor_diff/ soc2012/jhagewood/diff/gabor_diff/Makefile soc2012/jhagewood/diff/gabor_diff/diff.1 soc2012/jhagewood/diff/gabor_diff/diff.c soc2012/jhagewood/diff/gabor_diff/diff.h soc2012/jhagewood/diff/gabor_diff/diffdir.c soc2012/jhagewood/diff/gabor_diff/diffreg.c soc2012/jhagewood/diff/gabor_diff/pathnames.h soc2012/jhagewood/diff/hagewood-diff.patch soc2012/jhagewood/diff3/ soc2012/jhagewood/diff3/diff3/ soc2012/jhagewood/diff3/diff3-orig/ soc2012/jhagewood/diff3/diff3-orig/Makefile soc2012/jhagewood/diff3/diff3-orig/diff3.1 soc2012/jhagewood/diff3/diff3-orig/diff3.ksh soc2012/jhagewood/diff3/diff3-orig/diff3.sh soc2012/jhagewood/diff3/diff3-orig/diff3prog.c soc2012/jhagewood/diff3/diff3/Makefile soc2012/jhagewood/diff3/diff3/diff3.1 soc2012/jhagewood/diff3/diff3/diff3.ksh soc2012/jhagewood/diff3/diff3/diff3.sh soc2012/jhagewood/diff3/diff3/diff3prog.c soc2012/jhagewood/diff3/hagewood-diff3.patch soc2012/jhagewood/mdocml/ soc2012/jhagewood/mdocml/hagewood-mdocml-ns.patch soc2012/jhagewood/mdocml/hagewood-mdocml-ti.patch soc2012/jhagewood/mdocml/manpaths.txt soc2012/jhagewood/mdocml/mdocml-1.12.1/ soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/ soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/Makefile soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/TODO soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/apropos.1 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/apropos.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/apropos_db.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/apropos_db.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/arch.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/arch.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/att.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/att.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/catman.8 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/catman.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/cgi.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/chars.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/chars.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/compat_fgetln.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/compat_getsubopt.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/compat_strlcat.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/compat_strlcpy.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/config.h.post soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/config.h.pre soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/demandoc.1 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/demandoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/eqn.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/eqn.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/eqn_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/eqn_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/example.style.css soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/external.png (contents, props changed) soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/html.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/index.css soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/index.sgml soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/lib.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/lib.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/libman.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/libmandoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/libmdoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/libroff.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/main.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/main.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man-cgi.css soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man.cgi.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_hash.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_macro.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_validate.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc.1 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc.3 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc_char.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandocdb.8 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandocdb.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandocdb.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/manpath.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/manpath.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_argv.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_hash.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_macro.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_man.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_validate.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/msec.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/msec.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/out.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/out.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/preconv.1 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/preconv.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/predefs.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/read.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/roff.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/roff.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/st.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/st.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/style.css soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_data.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_layout.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_opts.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/term.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/term_ascii.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/term_ps.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-fgetln.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-getsubopt.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-mmap.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-strlcat.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-strlcpy.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-strptime.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tree.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/vol.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/vol.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/whatis.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/Makefile soc2012/jhagewood/mdocml/mdocml-1.12.1/TODO soc2012/jhagewood/mdocml/mdocml-1.12.1/apropos.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/apropos.c soc2012/jhagewood/mdocml/mdocml-1.12.1/apropos_db.c soc2012/jhagewood/mdocml/mdocml-1.12.1/apropos_db.h soc2012/jhagewood/mdocml/mdocml-1.12.1/arch.c soc2012/jhagewood/mdocml/mdocml-1.12.1/arch.in soc2012/jhagewood/mdocml/mdocml-1.12.1/att.c soc2012/jhagewood/mdocml/mdocml-1.12.1/att.in soc2012/jhagewood/mdocml/mdocml-1.12.1/catman.8 soc2012/jhagewood/mdocml/mdocml-1.12.1/catman.c soc2012/jhagewood/mdocml/mdocml-1.12.1/cgi.c soc2012/jhagewood/mdocml/mdocml-1.12.1/chars.c soc2012/jhagewood/mdocml/mdocml-1.12.1/chars.in soc2012/jhagewood/mdocml/mdocml-1.12.1/compat_fgetln.c soc2012/jhagewood/mdocml/mdocml-1.12.1/compat_getsubopt.c soc2012/jhagewood/mdocml/mdocml-1.12.1/compat_strlcat.c soc2012/jhagewood/mdocml/mdocml-1.12.1/compat_strlcpy.c soc2012/jhagewood/mdocml/mdocml-1.12.1/config.h.post soc2012/jhagewood/mdocml/mdocml-1.12.1/config.h.pre soc2012/jhagewood/mdocml/mdocml-1.12.1/demandoc.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/demandoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1/eqn.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/eqn.c soc2012/jhagewood/mdocml/mdocml-1.12.1/eqn_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/eqn_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/example.style.css soc2012/jhagewood/mdocml/mdocml-1.12.1/external.png (contents, props changed) soc2012/jhagewood/mdocml/mdocml-1.12.1/html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/html.h soc2012/jhagewood/mdocml/mdocml-1.12.1/index.css soc2012/jhagewood/mdocml/mdocml-1.12.1/index.sgml soc2012/jhagewood/mdocml/mdocml-1.12.1/lib.c soc2012/jhagewood/mdocml/mdocml-1.12.1/lib.in soc2012/jhagewood/mdocml/mdocml-1.12.1/libman.h soc2012/jhagewood/mdocml/mdocml-1.12.1/libmandoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1/libmdoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1/libroff.h soc2012/jhagewood/mdocml/mdocml-1.12.1/main.c soc2012/jhagewood/mdocml/mdocml-1.12.1/main.h soc2012/jhagewood/mdocml/mdocml-1.12.1/man-cgi.css soc2012/jhagewood/mdocml/mdocml-1.12.1/man.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/man.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man.cgi.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/man.h soc2012/jhagewood/mdocml/mdocml-1.12.1/man.h.orig soc2012/jhagewood/mdocml/mdocml-1.12.1/man_hash.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man_macro.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man_term.c.orig soc2012/jhagewood/mdocml/mdocml-1.12.1/man_validate.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc.3 soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc_char.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/mandocdb.8 soc2012/jhagewood/mdocml/mdocml-1.12.1/mandocdb.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mandocdb.h soc2012/jhagewood/mdocml/mdocml-1.12.1/manpath.c soc2012/jhagewood/mdocml/mdocml-1.12.1/manpath.h soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_argv.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_hash.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_macro.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_man.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_validate.c soc2012/jhagewood/mdocml/mdocml-1.12.1/msec.c soc2012/jhagewood/mdocml/mdocml-1.12.1/msec.in soc2012/jhagewood/mdocml/mdocml-1.12.1/out.c soc2012/jhagewood/mdocml/mdocml-1.12.1/out.h soc2012/jhagewood/mdocml/mdocml-1.12.1/preconv.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/preconv.c soc2012/jhagewood/mdocml/mdocml-1.12.1/predefs.in soc2012/jhagewood/mdocml/mdocml-1.12.1/read.c soc2012/jhagewood/mdocml/mdocml-1.12.1/roff.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/roff.c soc2012/jhagewood/mdocml/mdocml-1.12.1/st.c soc2012/jhagewood/mdocml/mdocml-1.12.1/st.in soc2012/jhagewood/mdocml/mdocml-1.12.1/style.css soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_data.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_layout.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_opts.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/term.h soc2012/jhagewood/mdocml/mdocml-1.12.1/term_ascii.c soc2012/jhagewood/mdocml/mdocml-1.12.1/term_ps.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-fgetln.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-getsubopt.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-mmap.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-strlcat.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-strlcpy.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-strptime.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tree.c soc2012/jhagewood/mdocml/mdocml-1.12.1/vol.c soc2012/jhagewood/mdocml/mdocml-1.12.1/vol.in soc2012/jhagewood/mdocml/mdocml-1.12.1/whatis.1 soc2012/jhagewood/mdocml/mdocml-manpage-errors.txt soc2012/jhagewood/mdocml/ports-textproc-patches/ soc2012/jhagewood/mdocml/ports-textproc-patches/patch-config.txt soc2012/jhagewood/mdocml/ports-textproc-patches/patch-lib.in.txt soc2012/jhagewood/mdocml/ports-textproc-patches/patch-mdoc_validate.c soc2012/jhagewood/mdocml/ports-textproc-patches/patch-msec.in.txt soc2012/jhagewood/mdocml/tests/ soc2012/jhagewood/mdocml/tests/compile-man-pages.sh (contents, props changed) soc2012/jhagewood/mdocml/tests/mdocml-test.sh (contents, props changed) soc2012/jhagewood/sdiff/ soc2012/jhagewood/sdiff/Makefile soc2012/jhagewood/sdiff/common.c soc2012/jhagewood/sdiff/common.h soc2012/jhagewood/sdiff/edit.c soc2012/jhagewood/sdiff/extern.h soc2012/jhagewood/sdiff/sdiff.1 soc2012/jhagewood/sdiff/sdiff.c Added: soc2012/jhagewood/Milestones ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/Milestones Fri Jun 15 21:01:07 2012 (r237782) @@ -0,0 +1,30 @@ +May 21 - June 17 + + Implement missing features of mdocml, including legacy features. + Testing of mdocml. + +June 18 - July 1 + + Complete diff + Debugging and testing of diff + +July 2 - July 18 + + Mid-term evaluations. + Complete sdiff + Debugging and testing of sdiff + +July 19 - August 5 + + Complete diff3 + Debugging and testing of diff3 + +August 6 – August 12 + + Thouroughly test and benchmark all utilities. + +August 13 - August 20 + + "Pencils down" period. + Finish cleaning up code and do any testing that might be left. + Write documentation. Added: soc2012/jhagewood/diff/TODO ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/diff/TODO Fri Jun 15 21:01:07 2012 (r237782) @@ -0,0 +1,19 @@ +TASK STATUS NOTE + +--unified GNU compatibility COMPLETE Fixed timestamp. +--context GNU compatibility IN PROGRESS +--ingnore-blank-lines INCOMPLETE +--left-column INCOMPLETE +--show-function-line INCOMPLETE +--unidirectional-new-file INCOMPLETE +--normal INCOMPLETE +--supress-common-lines INCOMPLETE +--GTYPE-group-format INCOMPLETE +--line-format INCOMPLETE +--LTYPE-line-format INCOMPLETE +--from-file INCOMPLETE +--to-file INCOMPLETE +--horizontal-lines INCOMPLETE +--speed-large-file INCOMPLETE +--ignore-tab-expansion IN PROGRESS +--width INCOMPLETE Added: soc2012/jhagewood/diff/diff-orig/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/diff/diff-orig/Makefile Fri Jun 15 21:01:07 2012 (r237782) @@ -0,0 +1,10 @@ +# $FreeBSD$ +# $OpenBSD: Makefile,v 1.2 2003/06/25 02:42:50 deraadt Exp $ + +DEBUG_FLAGS+= -g + +PROG= diff +SRCS= diff.c diffdir.c diffreg.c +CFLAGS+= -std=c99 -Wall -pedantic + +.include Added: soc2012/jhagewood/diff/diff-orig/diff ============================================================================== Binary file. No diff available. Added: soc2012/jhagewood/diff/diff-orig/diff.1 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/diff/diff-orig/diff.1 Fri Jun 15 21:01:07 2012 (r237782) @@ -0,0 +1,511 @@ +.\" $FreeBSD$ +.\" $OpenBSD: diff.1,v 1.33 2007/05/31 19:20:09 jmc Exp $ +.\" +.\" Copyright (c) 1980, 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)diff.1 8.1 (Berkeley) 6/30/93 +.\" +.Dd Apr 7, 2008 +.Dt DIFF 1 +.Os +.Sh NAME +.Nm diff +.Nd differential file and directory comparator +.Sh SYNOPSIS +.Nm diff +.Op Fl abdilpqTtw +.Op Fl I Ar pattern +.Oo +.Fl c | e | f | +.Fl n | u +.Oc +.Op Fl L Ar label +.Ar file1 file2 +.Nm diff +.Op Fl abdilpqTtw +.Op Fl I Ar pattern +.Op Fl L Ar label +.Fl C Op Ar number +.Ar file1 file2 +.Nm diff +.Op Fl abdilqtw +.Op Fl I Ar pattern +.Fl D Ar string +.Ar file1 file2 +.Nm diff +.Op Fl abdilpqTtw +.Op Fl I Ar pattern +.Op Fl L Ar label +.Fl U Ar number +.Ar file1 file2 +.Nm diff +.Op Fl abdilNPpqrsTtw +.Op Fl I Ar pattern +.Oo +.Fl c | e | f | +.Fl n | u +.Oc +.Bk -words +.Op Fl L Ar label +.Op Fl S Ar name +.Op Fl X Ar file +.Op Fl x Ar pattern +.Ek +.Ar dir1 dir2 +.Nm diff +.Op Fl v +.Sh DESCRIPTION +The +.Nm +utility compares the contents of +.Ar file1 +and +.Ar file2 +and writes to the standard output the list of changes necessary to +convert one file into the other. +No output is produced if the files are identical. +.Pp +Output options (mutually exclusive): +.Bl -tag -width Ds +.It Fl C Op Ar number , Fl Fl context Ns = Ns Op Ar number +Like +.Fl c +but produces a diff with +.Ar number +lines of context. +.It Fl c +Produces a diff with 3 lines of context. +With +.Fl c +the output format is modified slightly: +the output begins with identification of the files involved and +their creation dates and then each change is separated +by a line with fifteen +.Li * Ns 's . +The lines removed from +.Ar file1 +are marked with +.Sq \&-\ \& ; +those added to +.Ar file2 +are marked +.Sq \+\ \& . +Lines which are changed from one file to the other are marked in +both files with +.Sq !\ \& . +Changes which lie within 3 lines of each other are grouped together on +output. +.It Fl D Ar string , Fl Fl ifdef Ns = Ns Ar string +Creates a merged version of +.Ar file1 +and +.Ar file2 +on the standard output, with C preprocessor controls included so that +a compilation of the result without defining +.Ar string +is equivalent to compiling +.Ar file1 , +while defining +.Ar string +will yield +.Ar file2 . +.It Fl e , Fl Fl ed +Produces output in a form suitable as input for the editor utility, +.Xr ed 1 , +which can then be used to convert file1 into file2. +.Pp +Extra commands are added to the output when comparing directories with +.Fl e , +so that the result is a +.Xr sh 1 +script for converting text files which are common to the two directories +from their state in +.Ar dir1 +to their state in +.Ar dir2 . +.It Fl f +Identical output to that of the +.Fl e +flag, but in reverse order. +It cannot be digested by +.Xr ed 1 . +.It Fl n , Fl Fl rcs +Produces a script similar to that of +.Fl e , +but in the opposite order and with a count of changed lines on each +insert or delete command. +This is the form used by +.Xr rcsdiff 1 . +.It Fl q , Fl Fl brief +Just print a line when the files differ. +Does not output a list of changes. +.It Fl U Op Ar number , Fl Fl unified Ns = Ns Op Ar number +Like +.Fl u +but produces a diff with +.Ar number +lines of context. +.It Fl u +Produces a +.Em unified +diff with 3 lines of context. +A unified diff is similar to the context diff produced by the +.Fl c +option. +However, unlike with +.Fl c , +all lines to be changed (added and/or removed) are present in +a single section. +.El +.Pp +Comparison options: +.Bl -tag -width Ds +.It Fl a , Fl Fl text +Treat all files as +.Tn ASCII +text. +Normally +.Nm +will simply print +.Dq Binary files ... differ +if files contain binary characters. +Use of this option forces +.Nm +to produce a diff. +.It Fl b , Fl Fl ignore-space-change +Causes trailing blanks (spaces and tabs) to be ignored, and other +strings of blanks to compare equal. +.It Fl d , Fl Fl minimal +Try very hard to produce a diff as small as possible. +This may consume a lot of processing power and memory when processing +large files with many changes. +.It Fl I Ar pattern , Fl Fl ignore-matching-lines Ns = Ns Ar pattern +Ignores changes, insertions, and deletions whose lines match the +extended regular expression +.Ar pattern . +Multiple +.Fl I +patterns may be specified. +All lines in the change must match some pattern for the change to be +ignored. +See +.Xr re_format 7 +for more information on regular expression patterns. +.It Fl i , Fl Fl ignore-case +Ignores the case of letters. +E.g., +.Dq A +will compare equal to +.Dq a . +.It Fl L Ar label +Print +.Ar label +instead of the first (and second, if this option is specified twice) +file name and time in the context or unified diff header. +.It Fl l , Fl Fl paginate +Long output format; each text file +.Nm diff Ns \'d +is piped through +.Xr pr 1 +to paginate it; +other differences are remembered and summarized +after all text file differences are reported. +.It Fl p , Fl Fl show-c-function +With unified and context diffs, show with each change +the first 40 characters of the last line before the context beginning +with a letter, an underscore or a dollar sign. +For C source code following standard layout conventions, this will +show the prototype of the function the change applies to. +.It Fl T , Fl Fl initial-tab +Print a tab rather than a space before the rest of the line for the +normal, context or unified output formats. +This makes the alignment of tabs in the line consistent. +.It Fl t , Fl Fl expand-tabs +Will expand tabs in output lines. +Normal or +.Fl c +output adds character(s) to the front of each line which may screw up +the indentation of the original source lines and make the output listing +difficult to interpret. +This option will preserve the original source's indentation. +.It Fl w , Fl Fl ignore-all-space +Is similar to +.Fl b +but causes whitespace (blanks and tabs) to be totally ignored. +E.g., +.Dq if (\ \&a == b \&) +will compare equal to +.Dq if(a==b) . +.El +.Pp +Directory comparison options: +.Bl -tag -width Ds +.It Fl N , Fl Fl new-file +If a file is found in only one directory, act as if it was found in the +other directory too but was of zero size. +.It Fl P +If a file is found only in +.Ar dir2 , +act as if it was found in +.Ar dir1 +too but was of zero size. +.It Fl r , Fl Fl recursive +Causes application of +.Nm +recursively to common sub7 directories encountered. +.It Fl S Ar name , Fl starting-file Ns = Ns Ar name +Re-starts a directory +.Nm +in the middle, beginning with file +.Ar name . +.It Fl s , Fl Fl report-identical-files +Causes +.Nm +to report files which are the same, which are otherwise not mentioned. +.It Fl X Ar file , Fl Fl exclude-from Ns = Ns Ar file +Exclude files and subdirectories from comparison whose basenames match +lines in +.Ar file . +Multiple +.Fl X +options may be specified. +.It Fl x Ar pattern , Fl Fl exclude Ns = Ns Ar pattern +Exclude files and subdirectories from comparison whose basenames match +.Ar pattern . +Patterns are matched using shell-style globbing via +.Xr fnmatch 3 . +Multiple +.Fl x +options may be specified. +.It Fl v , Fl Fl version +Print version ino. +.El +.Pp +If both arguments are directories, +.Nm +sorts the contents of the directories by name, and then runs the +regular file +.Nm +algorithm, producing a change list, +on text files which are different. +Binary files which differ, +common subdirectories, and files which appear in only one directory +are described as such. +In directory mode only regular files and directories are compared. +If a non-regular file such as a device special file or +.Tn FIFO +is encountered, a diagnostic message is printed. +.Pp +If only one of +.Ar file1 +and +.Ar file2 +is a directory, +.Nm +is applied to the non-directory file and the file contained in +the directory file with a filename that is the same as the +last component of the non-directory file. +.Pp +If either +.Ar file1 +or +.Ar file2 +is +.Sq Fl , +the standard input is +used in its place. +.Ss Output Style +The default (without +.Fl e , +.Fl c , +or +.Fl n +.\" -C +options) +output contains lines of these forms, where +.Va XX , YY , ZZ , QQ +are line numbers respective of file order. +.Pp +.Bl -tag -width "XX,YYcZZ,QQ" -compact +.It Li XX Ns Ic a Ns Li YY +At (the end of) line +.Va XX +of +.Ar file1 , +append the contents +of line +.Va YY +of +.Ar file2 +to make them equal. +.It Li XX Ns Ic a Ns Li YY,ZZ +Same as above, but append the range of lines, +.Va YY +through +.Va ZZ +of +.Ar file2 +to line +.Va XX +of file1. +.It Li XX Ns Ic d Ns Li YY +At line +.Va XX +delete +the line. +The value +.Va YY +tells to which line the change would bring +.Ar file1 +in line with +.Ar file1 . +.It Li XX,YY Ns Ic d Ns Li ZZ +Delete the range of lines +.Va XX +through +.Va YY +in +.Ar file1 . +.It Li XX Ns Ic c Ns Li YY +Change the line +.Va XX +in +.Ar file1 +to the line +.Va YY +in +.Ar file2 . +.It Li XX,YY Ns Ic c Ns Li ZZ +Replace the range of specified lines with the line +.Va ZZ . +.It Li XX,YY Ns Ic c Ns Li ZZ,QQ +Replace the range +.Va XX , Ns Va YY +from +.Ar file1 +with the range +.Va ZZ , Ns Va QQ +from +.Ar file2 . +.El +.Pp +These lines resemble +.Xr ed 1 +subcommands to convert +.Ar file1 +into +.Ar file2 . +The line numbers before the action letters pertain to +.Ar file1 ; +those after pertain to +.Ar file2 . +Thus, by exchanging +.Ic a +for +.Ic d +and reading the line in reverse order, one can also +determine how to convert +.Ar file2 +into +.Ar file1 . +As in +.Xr ed 1 , +identical +pairs (where num1 = num2) are abbreviated as a single +number. +.Sh ENVIRONMENT +.Bl -tag -width TMPDIR +.It Ev TMPDIR +If the environment variable +.Ev TMPDIR +exists, +.Nm +will use the directory specified by +.Ev TMPDIR +as the temporary directory. +.El +.Sh FILES +.Bl -tag -width /tmp/diff.XXXXXXXX -compact +.It Pa /tmp/diff. Ns Ar XXXXXXXX +Temporary file used when comparing a device or the standard input. +Note that the temporary file is unlinked as soon as it is created +so it will not show up in a directory listing. +.El +.Sh DIAGNOSTICS +The +.Nm +utility exits with one of the following values: +.Pp +.Bl -tag -width Ds -compact -offset indent +.It 0 +No differences were found. +.It 1 +Differences were found. +.It \*(Gt1 +An error occurred. +.El +.Sh SEE ALSO +.Xr cmp 1 , +.Xr comm 1 , +.Xr diff3 1 , +.Xr ed 1 , +.Xr pr 1 , +.Xr sdiff 1 , +.Xr fnmatch 3 , +.Xr re_format 7 +.Sh STANDARDS +The +.Nm +utility is compliant with the +St -p1003.1-2004 +specification. +.Pp +The flags +.Op Fl aDdIiLlNnPpqSsTtUuwXx +are extensions to that specification. +.Sh HISTORY +A +.Nm +command appeared in +.At v6 . +.Sh BUGS +When comparing directories with the +.Fl b , +.Fl w +or +.Fl i +options specified, +.Nm +first compares the files ala +.Xr cmp 1 , +and then decides to run the +.Nm +algorithm if they are not equal. +This may cause a small amount of spurious output if the files +then turn out to be identical because the only differences are +insignificant whitespace or case differences. Added: soc2012/jhagewood/diff/diff-orig/diff.1.gz ============================================================================== Binary file. No diff available. Added: soc2012/jhagewood/diff/diff-orig/diff.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/diff/diff-orig/diff.c Fri Jun 15 21:01:07 2012 (r237782) @@ -0,0 +1,599 @@ +/*- + * Copyright (c) 2003 Todd C. Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Sponsored in part by the Defense Advanced Research Projects + * Agency (DARPA) and Air Force Research Laboratory, Air Force + * Materiel Command, USAF, under agreement number F39502-99-1-0512. + */ + +#include + +#ifndef lint +#if 0 +__RCSID("$OpenBSD: diff.c,v 1.50 2007/05/29 18:24:56 ray Exp $"); +#else +__FBSDID("$FreeBSD$"); +#endif +#endif /* not lint */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "diff.h" +#include "pathnames.h" + +int aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag; +int sflag, tflag, Tflag, wflag; +int Bflag, yflag; +int strip_cr, tabsize=8; +char ignore_file_case = 0; +int format, context, status; +char *start, *ifdefname, *diffargs, *label[2], *ignore_pats; +struct stat stb1, stb2; +struct excludes *excludes_list; +regex_t ignore_re; + +int flag_opts = 0; + +#define OPTIONS "0123456789aBbC:cdD:efhI:iL:lnNPpqrS:sTtU:uvwXy:x" + + +/* Options which exceed manageable alphanumeric assignments */ +enum +{ + OPT_IGN_FN_CASE = CHAR_MAX + 1, + OPT_NIGN_FN_CASE, + OPT_STRIPCR, + OPT_NORMAL, + OPT_LEFTC, + OT_SUPCL, + OPT_GTYPE, + OPT_LF, + OPT_LLF, + OPT_TSIZE, + OPT_UNINF, + OPT_FFILE, + OPT_TOFILE, + OPT_HLINES, + OPT_LFILES, + OPT_HELP, +}; + + +static struct option longopts[] = { +/* XXX: UNIMPLEMENTED + { "normal", no_argument, NULL, OPT_NORMAL }, + { "left-column", no_argument, NULL, OPT_LEFTC }, + { "suppress-common-lines", no_argument, NULL, OT_SUPCL }, + { "GTYPE-group-format", required_argument, NULL, OPT_GTYPE }, + { "line-format", required_argument, NULL, OPT_LF }, + { "LTYPE-line-format", required_argument, NULL, OPT_LLF }, + { "unidirectional-new-file", no_argument, NULL, OPT_UNINF }, + { "from-file", required_argument, NULL, OPT_FFILE }, + { "to-file", required_argument, NULL, OPT_TOFILE }, + { "horizon-lines", required_argument, NULL, OPT_HLINES }, + { "speed-large-files", no_argument, NULL, OPT_LFILES }, */ + { "tabsize", optional_argument, NULL, OPT_TSIZE }, + { "strip-trailing-cr", no_argument, NULL, OPT_STRIPCR }, + { "help", no_argument, NULL, OPT_HELP }, + { "ignore-file-name-case", no_argument, NULL, OPT_IGN_FN_CASE }, + { "no-ignore-file-name-case", no_argument, NULL, OPT_NIGN_FN_CASE }, + { "text", no_argument, NULL, 'a' }, +/* XXX: UNIMPLEMENTED */ + { "ignore-blank-lines", no_argument, NULL, 'B' }, + { "ignore-space-change", no_argument, NULL, 'b' }, +/* XXX: -c is incompatible with GNU version */ + { "context", optional_argument, NULL, 'C' }, + { "ifdef", required_argument, NULL, 'D' }, + { "minimal", no_argument, NULL, 'd' }, +/* XXX: UNIMPLEMENTED + { "ignore-tab-expansion", no_argument, NULL, 'E' }, */ + { "ed", no_argument, NULL, 'e' }, +/* XXX: UNIMPLEMENTED + { "show-function-line", required_argument, NULL, 'F' }, */ + { "forward-ed", no_argument, NULL, 'f' }, + { "ignore-matching-lines", required_argument, NULL, 'I' }, + { "ignore-case", no_argument, NULL, 'i' }, + { "label", required_argument, NULL, 'L' }, + { "paginate", no_argument, NULL, 'l' }, + { "new-file", no_argument, NULL, 'N' }, + { "rcs", no_argument, NULL, 'n' }, + { "unidirectional-new-file", no_argument, NULL, 'P' }, + { "show-c-function", no_argument, NULL, 'p' }, + { "brief", no_argument, NULL, 'q' }, + { "recursive", no_argument, NULL, 'r' }, + { "starting-file", required_argument, NULL, 'S' }, + { "report-identical-files", no_argument, NULL, 's' }, + { "initial-tab", no_argument, NULL, 'T' }, + { "expand-tabs", no_argument, NULL, 't' }, +/* XXX: -u is incompatible with GNU version */ + { "unified", optional_argument, NULL, 'U' }, + { "version", no_argument, NULL, 'v' }, +/* XXX: UNIMPLEMENTED + { "width", optional_argument, NULL, 'W' }, */ + { "ignore-all-space", no_argument, NULL, 'w' }, + { "exclude-from", required_argument, NULL, 'X' }, + { "exclude", required_argument, NULL, 'x' }, + { "side-by-side", no_argument, NULL, 'y' }, + { NULL, 0, NULL, '\0'} +}; + +static const char *help_msg[] = { +"-a --text treat files as ASCII text", +"-B --ignore-blank-lines Ignore blank newlines in the comparison", +"-b --ignore-space-change Ignore all changes due to whitespace", +"-C NUM --context=[NUM] Show NUM lines before and after change (default 3)", +"-D --ifdef=NAME", +NULL, +}; +char **help_strs = (char **)help_msg; + +void set_argstr(char **, char **); + + +void usage(void); +void push_excludes(char *); +void push_ignore_pats(char *); +void read_excludes_file(char *); + +int +main(int argc, char **argv) +{ + char *ep, **oargv; + long l; + int ch, lastch, gotstdin, prevoptind, newarg; + int oargc; + + oargv = argv; + oargc = argc; + gotstdin = 0; + + lastch = '\0'; + prevoptind = 1; + newarg = 1; + while ((ch = getopt_long(argc, argv, OPTIONS, longopts, NULL)) != -1) { + switch (ch) { + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + if (newarg) + usage(); /* disallow -[0-9]+ */ + else if (lastch == 'c' || lastch == 'u') + context = 0; + else if (!isdigit(lastch) || context > INT_MAX / 10) + usage(); + context = (context * 10) + (ch - '0'); + break; + case 'a': + aflag = 1; + break; + case 'b': + bflag = 1; + break; + case 'B': + Bflag = 1; + break; + case 'C': + case 'c': + format = D_CONTEXT; + if (optarg != NULL) { + l = strtol(optarg, &ep, 10); + if (*ep != '\0' || l < 0 || l >= INT_MAX) + usage(); + context = (int)l; + } else + context = 3; + break; + case 'D': + format = D_IFDEF; + ifdefname = optarg; + break; + case 'd': + dflag = 1; + break; + case 'e': + format = D_EDIT; + break; + case 'f': + format = D_REVERSE; + break; + case 'h': + /* silently ignore for backwards compatibility */ + break; + case 'I': + push_ignore_pats(optarg); + break; + case 'i': + iflag = 1; + break; + case 'L': + if (label[0] == NULL) + label[0] = optarg; + else if (label[1] == NULL) + label[1] = optarg; + else + usage(); + break; + case 'l': + lflag = 1; + signal(SIGPIPE, SIG_IGN); + break; + case 'N': + Nflag = 1; + break; + case 'n': + format = D_NREVERSE; + break; + case 'P': + Pflag = 1; + break; + case 'p': + pflag = 1; + break; + case 'r': + rflag = 1; + break; + case 'q': + format = D_BRIEF; + break; + case 'S': + start = optarg; + break; + case 's': + sflag = 1; + break; + case 'T': + Tflag = 1; + break; + case 't': + tflag = 1; + break; + case 'U': + case 'u': + format = D_UNIFIED; + if (optarg != NULL) { + l = strtol(optarg, &ep, 10); + if (*ep != '\0' || l < 0 || l >= INT_MAX) + usage(); + context = (int)l; + } else + context = 3; + break; + case 'v': + printf("FreeBSD diff 2.8.7\n"); + exit(0); + case 'w': + wflag = 1; + break; + case 'X': + read_excludes_file(optarg); + break; + case 'x': + push_excludes(optarg); + break; + case 'y': + yflag = 1; + break; + case OPT_TSIZE: + if (optarg != NULL) { + l = strtol(optarg, &ep, 10); + if (*ep != '\0' || l < 1 || l >= INT_MAX) + usage(); + tabsize = (int)l; + } else + tabsize = 8; + break; + case OPT_STRIPCR: + strip_cr=1; + break; + case OPT_IGN_FN_CASE: + ignore_file_case = 1; + break; + case OPT_NIGN_FN_CASE: + ignore_file_case = 0; + break; + case OPT_HELP: + for(;*help_strs;help_strs++) + { + printf("%s\n", *help_strs); + } + exit(2); + break; + default: + usage(); + break; + } + lastch = ch; + newarg = optind != prevoptind; + prevoptind = optind; + } + argc -= optind; + argv += optind; + + if(yflag) { + /* remove y flag from args and call sdiff */ + for(argv=oargv; argv && strcmp(*argv, "-y") != 0; argv++); + while(argv != &oargv[oargc]){ + *argv=*(argv+1); + argv++; + } + oargv[0] = _PATH_SDIFF; + *argv= "\0"; + + execv(_PATH_SDIFF, oargv); + _exit(127); + } + + /* + * Do sanity checks, fill in stb1 and stb2 and call the appropriate + * driver routine. Both drivers use the contents of stb1 and stb2. + */ + if (argc != 2) + usage(); + if (ignore_pats != NULL) { + char buf[BUFSIZ]; + int error; + + if ((error = regcomp(&ignore_re, ignore_pats, + REG_NEWLINE | REG_EXTENDED)) != 0) { + regerror(error, &ignore_re, buf, sizeof(buf)); + if (*ignore_pats != '\0') + errx(2, "%s: %s", ignore_pats, buf); + else + errx(2, "%s", buf); + } + } + if (strcmp(argv[0], "-") == 0) { + fstat(STDIN_FILENO, &stb1); + gotstdin = 1; + } else if (stat(argv[0], &stb1) != 0) + err(2, "%s", argv[0]); + if (strcmp(argv[1], "-") == 0) { + fstat(STDIN_FILENO, &stb2); + gotstdin = 1; + } else if (stat(argv[1], &stb2) != 0) + err(2, "%s", argv[1]); + if (gotstdin && (S_ISDIR(stb1.st_mode) || S_ISDIR(stb2.st_mode))) + errx(2, "can't compare - to a directory"); + set_argstr(oargv, argv); + if (S_ISDIR(stb1.st_mode) && S_ISDIR(stb2.st_mode)) { + if (format == D_IFDEF) + errx(2, "-D option not supported with directories"); + diffdir(argv[0], argv[1]); + } else { + if (S_ISDIR(stb1.st_mode)) { + argv[0] = splice(argv[0], argv[1]); + if (stat(argv[0], &stb1) < 0) + err(2, "%s", argv[0]); + } + if (S_ISDIR(stb2.st_mode)) { + argv[1] = splice(argv[1], argv[0]); + if (stat(argv[1], &stb2) < 0) + err(2, "%s", argv[1]); + } + print_status(diffreg(argv[0], argv[1], 0), argv[0], argv[1], + NULL); + } + exit(status); +} + +void * +emalloc(size_t n) +{ + void *p; + + if (n == 0) + errx(2, NULL); + + if ((p = malloc(n)) == NULL) + errx(2, NULL); + return (p); +} + +void * *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-soc-all@FreeBSD.ORG Fri Jun 15 23:00:20 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 75C7A106564A for ; Fri, 15 Jun 2012 23:00:19 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Fri, 15 Jun 2012 23:00:19 +0000 Date: Fri, 15 Jun 2012 23:00:19 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120615230019.75C7A106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237787 - soc2012/jhagewood X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 23:00:20 -0000 Author: jhagewood Date: Fri Jun 15 23:00:19 2012 New Revision: 237787 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237787 Log: Deleted: soc2012/jhagewood/ From owner-svn-soc-all@FreeBSD.ORG Fri Jun 15 23:00:28 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 7038A106568D for ; Fri, 15 Jun 2012 23:00:27 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Fri, 15 Jun 2012 23:00:27 +0000 Date: Fri, 15 Jun 2012 23:00:27 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120615230027.7038A106568D@hub.freebsd.org> Cc: Subject: socsvn commit: r237788 - soc2012/jhagewood X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 23:00:28 -0000 Author: jhagewood Date: Fri Jun 15 23:00:27 2012 New Revision: 237788 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237788 Log: Added: soc2012/jhagewood/ From owner-svn-soc-all@FreeBSD.ORG Fri Jun 15 23:01:36 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 22201106566C for ; Fri, 15 Jun 2012 23:01:34 +0000 (UTC) (envelope-from jhagewood@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Fri, 15 Jun 2012 23:01:34 +0000 Date: Fri, 15 Jun 2012 23:01:34 +0000 From: jhagewood@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120615230134.22201106566C@hub.freebsd.org> Cc: Subject: socsvn commit: r237789 - in soc2012/jhagewood: . diff diff/diff diff/diff-orig diff/gabor_diff diff3 diff3/diff3 diff3/diff3-orig mdocml mdocml/mdocml-1.12.1 mdocml/mdocml-1.12.1-orig mdocml/ports-... X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2012 23:01:36 -0000 Author: jhagewood Date: Fri Jun 15 23:01:33 2012 New Revision: 237789 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237789 Log: Added: soc2012/jhagewood/Milestones soc2012/jhagewood/diff/ soc2012/jhagewood/diff/TODO soc2012/jhagewood/diff/diff/ soc2012/jhagewood/diff/diff-orig/ soc2012/jhagewood/diff/diff-orig/Makefile soc2012/jhagewood/diff/diff-orig/diff (contents, props changed) soc2012/jhagewood/diff/diff-orig/diff.1 soc2012/jhagewood/diff/diff-orig/diff.1.gz (contents, props changed) soc2012/jhagewood/diff/diff-orig/diff.c soc2012/jhagewood/diff/diff-orig/diff.h soc2012/jhagewood/diff/diff-orig/diffdir.c soc2012/jhagewood/diff/diff-orig/diffreg.c soc2012/jhagewood/diff/diff-orig/pathnames.h soc2012/jhagewood/diff/diff/Makefile soc2012/jhagewood/diff/diff/diff (contents, props changed) soc2012/jhagewood/diff/diff/diff.1 soc2012/jhagewood/diff/diff/diff.1.gz (contents, props changed) soc2012/jhagewood/diff/diff/diff.c soc2012/jhagewood/diff/diff/diff.h soc2012/jhagewood/diff/diff/diffdir.c soc2012/jhagewood/diff/diff/diffreg.c soc2012/jhagewood/diff/diff/pathnames.h soc2012/jhagewood/diff/gabor_diff/ soc2012/jhagewood/diff/gabor_diff/Makefile soc2012/jhagewood/diff/gabor_diff/diff.1 soc2012/jhagewood/diff/gabor_diff/diff.c soc2012/jhagewood/diff/gabor_diff/diff.h soc2012/jhagewood/diff/gabor_diff/diffdir.c soc2012/jhagewood/diff/gabor_diff/diffreg.c soc2012/jhagewood/diff/gabor_diff/pathnames.h soc2012/jhagewood/diff/hagewood-diff.patch soc2012/jhagewood/diff3/ soc2012/jhagewood/diff3/diff3/ soc2012/jhagewood/diff3/diff3-orig/ soc2012/jhagewood/diff3/diff3-orig/Makefile soc2012/jhagewood/diff3/diff3-orig/diff3.1 soc2012/jhagewood/diff3/diff3-orig/diff3.ksh soc2012/jhagewood/diff3/diff3-orig/diff3.sh soc2012/jhagewood/diff3/diff3-orig/diff3prog.c soc2012/jhagewood/diff3/diff3/Makefile soc2012/jhagewood/diff3/diff3/diff3.1 soc2012/jhagewood/diff3/diff3/diff3.ksh soc2012/jhagewood/diff3/diff3/diff3.sh soc2012/jhagewood/diff3/diff3/diff3prog.c soc2012/jhagewood/diff3/hagewood-diff3.patch soc2012/jhagewood/mdocml/ soc2012/jhagewood/mdocml/hagewood-mdocml-ns.patch soc2012/jhagewood/mdocml/hagewood-mdocml-ti.patch soc2012/jhagewood/mdocml/manpaths.txt soc2012/jhagewood/mdocml/mdocml-1.12.1/ soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/ soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/Makefile soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/TODO soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/apropos.1 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/apropos.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/apropos_db.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/apropos_db.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/arch.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/arch.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/att.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/att.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/catman.8 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/catman.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/cgi.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/chars.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/chars.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/compat_fgetln.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/compat_getsubopt.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/compat_strlcat.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/compat_strlcpy.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/config.h.post soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/config.h.pre soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/demandoc.1 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/demandoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/eqn.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/eqn.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/eqn_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/eqn_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/example.style.css soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/external.png (contents, props changed) soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/html.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/index.css soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/index.sgml soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/lib.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/lib.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/libman.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/libmandoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/libmdoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/libroff.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/main.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/main.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man-cgi.css soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man.cgi.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_hash.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_macro.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/man_validate.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc.1 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc.3 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandoc_char.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandocdb.8 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandocdb.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mandocdb.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/manpath.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/manpath.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_argv.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_hash.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_macro.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_man.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/mdoc_validate.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/msec.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/msec.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/out.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/out.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/preconv.1 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/preconv.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/predefs.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/read.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/roff.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/roff.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/st.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/st.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/style.css soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl.7 soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_data.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_layout.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_opts.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tbl_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/term.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/term.h soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/term_ascii.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/term_ps.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-fgetln.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-getsubopt.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-mmap.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-strlcat.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-strlcpy.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/test-strptime.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/tree.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/vol.c soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/vol.in soc2012/jhagewood/mdocml/mdocml-1.12.1-orig/whatis.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/Makefile soc2012/jhagewood/mdocml/mdocml-1.12.1/TODO soc2012/jhagewood/mdocml/mdocml-1.12.1/apropos.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/apropos.c soc2012/jhagewood/mdocml/mdocml-1.12.1/apropos_db.c soc2012/jhagewood/mdocml/mdocml-1.12.1/apropos_db.h soc2012/jhagewood/mdocml/mdocml-1.12.1/arch.c soc2012/jhagewood/mdocml/mdocml-1.12.1/arch.in soc2012/jhagewood/mdocml/mdocml-1.12.1/att.c soc2012/jhagewood/mdocml/mdocml-1.12.1/att.in soc2012/jhagewood/mdocml/mdocml-1.12.1/catman.8 soc2012/jhagewood/mdocml/mdocml-1.12.1/catman.c soc2012/jhagewood/mdocml/mdocml-1.12.1/cgi.c soc2012/jhagewood/mdocml/mdocml-1.12.1/chars.c soc2012/jhagewood/mdocml/mdocml-1.12.1/chars.in soc2012/jhagewood/mdocml/mdocml-1.12.1/compat_fgetln.c soc2012/jhagewood/mdocml/mdocml-1.12.1/compat_getsubopt.c soc2012/jhagewood/mdocml/mdocml-1.12.1/compat_strlcat.c soc2012/jhagewood/mdocml/mdocml-1.12.1/compat_strlcpy.c soc2012/jhagewood/mdocml/mdocml-1.12.1/config.h.post soc2012/jhagewood/mdocml/mdocml-1.12.1/config.h.pre soc2012/jhagewood/mdocml/mdocml-1.12.1/demandoc.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/demandoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1/eqn.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/eqn.c soc2012/jhagewood/mdocml/mdocml-1.12.1/eqn_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/eqn_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/example.style.css soc2012/jhagewood/mdocml/mdocml-1.12.1/external.png (contents, props changed) soc2012/jhagewood/mdocml/mdocml-1.12.1/html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/html.h soc2012/jhagewood/mdocml/mdocml-1.12.1/index.css soc2012/jhagewood/mdocml/mdocml-1.12.1/index.sgml soc2012/jhagewood/mdocml/mdocml-1.12.1/lib.c soc2012/jhagewood/mdocml/mdocml-1.12.1/lib.in soc2012/jhagewood/mdocml/mdocml-1.12.1/libman.h soc2012/jhagewood/mdocml/mdocml-1.12.1/libmandoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1/libmdoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1/libroff.h soc2012/jhagewood/mdocml/mdocml-1.12.1/main.c soc2012/jhagewood/mdocml/mdocml-1.12.1/main.h soc2012/jhagewood/mdocml/mdocml-1.12.1/man-cgi.css soc2012/jhagewood/mdocml/mdocml-1.12.1/man.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/man.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man.cgi.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/man.h soc2012/jhagewood/mdocml/mdocml-1.12.1/man.h.orig soc2012/jhagewood/mdocml/mdocml-1.12.1/man_hash.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man_macro.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/man_term.c.orig soc2012/jhagewood/mdocml/mdocml-1.12.1/man_validate.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc.3 soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1/mandoc_char.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/mandocdb.8 soc2012/jhagewood/mdocml/mdocml-1.12.1/mandocdb.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mandocdb.h soc2012/jhagewood/mdocml/mdocml-1.12.1/manpath.c soc2012/jhagewood/mdocml/mdocml-1.12.1/manpath.h soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc.h soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_argv.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_hash.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_macro.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_man.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/mdoc_validate.c soc2012/jhagewood/mdocml/mdocml-1.12.1/msec.c soc2012/jhagewood/mdocml/mdocml-1.12.1/msec.in soc2012/jhagewood/mdocml/mdocml-1.12.1/out.c soc2012/jhagewood/mdocml/mdocml-1.12.1/out.h soc2012/jhagewood/mdocml/mdocml-1.12.1/preconv.1 soc2012/jhagewood/mdocml/mdocml-1.12.1/preconv.c soc2012/jhagewood/mdocml/mdocml-1.12.1/predefs.in soc2012/jhagewood/mdocml/mdocml-1.12.1/read.c soc2012/jhagewood/mdocml/mdocml-1.12.1/roff.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/roff.c soc2012/jhagewood/mdocml/mdocml-1.12.1/st.c soc2012/jhagewood/mdocml/mdocml-1.12.1/st.in soc2012/jhagewood/mdocml/mdocml-1.12.1/style.css soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl.7 soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_data.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_html.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_layout.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_opts.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tbl_term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/term.c soc2012/jhagewood/mdocml/mdocml-1.12.1/term.h soc2012/jhagewood/mdocml/mdocml-1.12.1/term_ascii.c soc2012/jhagewood/mdocml/mdocml-1.12.1/term_ps.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-fgetln.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-getsubopt.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-mmap.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-strlcat.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-strlcpy.c soc2012/jhagewood/mdocml/mdocml-1.12.1/test-strptime.c soc2012/jhagewood/mdocml/mdocml-1.12.1/tree.c soc2012/jhagewood/mdocml/mdocml-1.12.1/vol.c soc2012/jhagewood/mdocml/mdocml-1.12.1/vol.in soc2012/jhagewood/mdocml/mdocml-1.12.1/whatis.1 soc2012/jhagewood/mdocml/mdocml-manpage-errors.txt soc2012/jhagewood/mdocml/ports-textproc-patches/ soc2012/jhagewood/mdocml/ports-textproc-patches/patch-config.txt soc2012/jhagewood/mdocml/ports-textproc-patches/patch-lib.in.txt soc2012/jhagewood/mdocml/ports-textproc-patches/patch-mdoc_validate.c soc2012/jhagewood/mdocml/ports-textproc-patches/patch-msec.in.txt soc2012/jhagewood/mdocml/tests/ soc2012/jhagewood/mdocml/tests/compile-man-pages.sh (contents, props changed) soc2012/jhagewood/mdocml/tests/mdocml-test.sh (contents, props changed) soc2012/jhagewood/sdiff/ soc2012/jhagewood/sdiff/Makefile soc2012/jhagewood/sdiff/common.c soc2012/jhagewood/sdiff/common.h soc2012/jhagewood/sdiff/edit.c soc2012/jhagewood/sdiff/extern.h soc2012/jhagewood/sdiff/sdiff.1 soc2012/jhagewood/sdiff/sdiff.c Added: soc2012/jhagewood/Milestones ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/Milestones Fri Jun 15 23:01:33 2012 (r237789) @@ -0,0 +1,30 @@ +May 21 - June 17 + + Implement missing features of mdocml, including legacy features. + Testing of mdocml. + +June 18 - July 1 + + Complete diff + Debugging and testing of diff + +July 2 - July 18 + + Mid-term evaluations. + Complete sdiff + Debugging and testing of sdiff + +July 19 - August 5 + + Complete diff3 + Debugging and testing of diff3 + +August 6 – August 12 + + Thouroughly test and benchmark all utilities. + +August 13 - August 20 + + "Pencils down" period. + Finish cleaning up code and do any testing that might be left. + Write documentation. Added: soc2012/jhagewood/diff/TODO ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/diff/TODO Fri Jun 15 23:01:33 2012 (r237789) @@ -0,0 +1,19 @@ +TASK STATUS NOTE + +--unified GNU compatibility COMPLETE Fixed timestamp. +--context GNU compatibility IN PROGRESS +--ingnore-blank-lines INCOMPLETE +--left-column INCOMPLETE +--show-function-line INCOMPLETE +--unidirectional-new-file INCOMPLETE +--normal COMPLETE Sets format to D_NORMAL in getopt_long(). +--supress-common-lines INCOMPLETE +--GTYPE-group-format INCOMPLETE +--line-format INCOMPLETE +--LTYPE-line-format INCOMPLETE +--from-file INCOMPLETE +--to-file INCOMPLETE +--horizontal-lines INCOMPLETE +--speed-large-file INCOMPLETE +--ignore-tab-expansion IN PROGRESS +--width INCOMPLETE Added: soc2012/jhagewood/diff/diff-orig/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/diff/diff-orig/Makefile Fri Jun 15 23:01:33 2012 (r237789) @@ -0,0 +1,10 @@ +# $FreeBSD$ +# $OpenBSD: Makefile,v 1.2 2003/06/25 02:42:50 deraadt Exp $ + +DEBUG_FLAGS+= -g + +PROG= diff +SRCS= diff.c diffdir.c diffreg.c +CFLAGS+= -std=c99 -Wall -pedantic + +.include Added: soc2012/jhagewood/diff/diff-orig/diff ============================================================================== Binary file. No diff available. Added: soc2012/jhagewood/diff/diff-orig/diff.1 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/diff/diff-orig/diff.1 Fri Jun 15 23:01:33 2012 (r237789) @@ -0,0 +1,511 @@ +.\" $FreeBSD$ +.\" $OpenBSD: diff.1,v 1.33 2007/05/31 19:20:09 jmc Exp $ +.\" +.\" Copyright (c) 1980, 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)diff.1 8.1 (Berkeley) 6/30/93 +.\" +.Dd Apr 7, 2008 +.Dt DIFF 1 +.Os +.Sh NAME +.Nm diff +.Nd differential file and directory comparator +.Sh SYNOPSIS +.Nm diff +.Op Fl abdilpqTtw +.Op Fl I Ar pattern +.Oo +.Fl c | e | f | +.Fl n | u +.Oc +.Op Fl L Ar label +.Ar file1 file2 +.Nm diff +.Op Fl abdilpqTtw +.Op Fl I Ar pattern +.Op Fl L Ar label +.Fl C Op Ar number +.Ar file1 file2 +.Nm diff +.Op Fl abdilqtw +.Op Fl I Ar pattern +.Fl D Ar string +.Ar file1 file2 +.Nm diff +.Op Fl abdilpqTtw +.Op Fl I Ar pattern +.Op Fl L Ar label +.Fl U Ar number +.Ar file1 file2 +.Nm diff +.Op Fl abdilNPpqrsTtw +.Op Fl I Ar pattern +.Oo +.Fl c | e | f | +.Fl n | u +.Oc +.Bk -words +.Op Fl L Ar label +.Op Fl S Ar name +.Op Fl X Ar file +.Op Fl x Ar pattern +.Ek +.Ar dir1 dir2 +.Nm diff +.Op Fl v +.Sh DESCRIPTION +The +.Nm +utility compares the contents of +.Ar file1 +and +.Ar file2 +and writes to the standard output the list of changes necessary to +convert one file into the other. +No output is produced if the files are identical. +.Pp +Output options (mutually exclusive): +.Bl -tag -width Ds +.It Fl C Op Ar number , Fl Fl context Ns = Ns Op Ar number +Like +.Fl c +but produces a diff with +.Ar number +lines of context. +.It Fl c +Produces a diff with 3 lines of context. +With +.Fl c +the output format is modified slightly: +the output begins with identification of the files involved and +their creation dates and then each change is separated +by a line with fifteen +.Li * Ns 's . +The lines removed from +.Ar file1 +are marked with +.Sq \&-\ \& ; +those added to +.Ar file2 +are marked +.Sq \+\ \& . +Lines which are changed from one file to the other are marked in +both files with +.Sq !\ \& . +Changes which lie within 3 lines of each other are grouped together on +output. +.It Fl D Ar string , Fl Fl ifdef Ns = Ns Ar string +Creates a merged version of +.Ar file1 +and +.Ar file2 +on the standard output, with C preprocessor controls included so that +a compilation of the result without defining +.Ar string +is equivalent to compiling +.Ar file1 , +while defining +.Ar string +will yield +.Ar file2 . +.It Fl e , Fl Fl ed +Produces output in a form suitable as input for the editor utility, +.Xr ed 1 , +which can then be used to convert file1 into file2. +.Pp +Extra commands are added to the output when comparing directories with +.Fl e , +so that the result is a +.Xr sh 1 +script for converting text files which are common to the two directories +from their state in +.Ar dir1 +to their state in +.Ar dir2 . +.It Fl f +Identical output to that of the +.Fl e +flag, but in reverse order. +It cannot be digested by +.Xr ed 1 . +.It Fl n , Fl Fl rcs +Produces a script similar to that of +.Fl e , +but in the opposite order and with a count of changed lines on each +insert or delete command. +This is the form used by +.Xr rcsdiff 1 . +.It Fl q , Fl Fl brief +Just print a line when the files differ. +Does not output a list of changes. +.It Fl U Op Ar number , Fl Fl unified Ns = Ns Op Ar number +Like +.Fl u +but produces a diff with +.Ar number +lines of context. +.It Fl u +Produces a +.Em unified +diff with 3 lines of context. +A unified diff is similar to the context diff produced by the +.Fl c +option. +However, unlike with +.Fl c , +all lines to be changed (added and/or removed) are present in +a single section. +.El +.Pp +Comparison options: +.Bl -tag -width Ds +.It Fl a , Fl Fl text +Treat all files as +.Tn ASCII +text. +Normally +.Nm +will simply print +.Dq Binary files ... differ +if files contain binary characters. +Use of this option forces +.Nm +to produce a diff. +.It Fl b , Fl Fl ignore-space-change +Causes trailing blanks (spaces and tabs) to be ignored, and other +strings of blanks to compare equal. +.It Fl d , Fl Fl minimal +Try very hard to produce a diff as small as possible. +This may consume a lot of processing power and memory when processing +large files with many changes. +.It Fl I Ar pattern , Fl Fl ignore-matching-lines Ns = Ns Ar pattern +Ignores changes, insertions, and deletions whose lines match the +extended regular expression +.Ar pattern . +Multiple +.Fl I +patterns may be specified. +All lines in the change must match some pattern for the change to be +ignored. +See +.Xr re_format 7 +for more information on regular expression patterns. +.It Fl i , Fl Fl ignore-case +Ignores the case of letters. +E.g., +.Dq A +will compare equal to +.Dq a . +.It Fl L Ar label +Print +.Ar label +instead of the first (and second, if this option is specified twice) +file name and time in the context or unified diff header. +.It Fl l , Fl Fl paginate +Long output format; each text file +.Nm diff Ns \'d +is piped through +.Xr pr 1 +to paginate it; +other differences are remembered and summarized +after all text file differences are reported. +.It Fl p , Fl Fl show-c-function +With unified and context diffs, show with each change +the first 40 characters of the last line before the context beginning +with a letter, an underscore or a dollar sign. +For C source code following standard layout conventions, this will +show the prototype of the function the change applies to. +.It Fl T , Fl Fl initial-tab +Print a tab rather than a space before the rest of the line for the +normal, context or unified output formats. +This makes the alignment of tabs in the line consistent. +.It Fl t , Fl Fl expand-tabs +Will expand tabs in output lines. +Normal or +.Fl c +output adds character(s) to the front of each line which may screw up +the indentation of the original source lines and make the output listing +difficult to interpret. +This option will preserve the original source's indentation. +.It Fl w , Fl Fl ignore-all-space +Is similar to +.Fl b +but causes whitespace (blanks and tabs) to be totally ignored. +E.g., +.Dq if (\ \&a == b \&) +will compare equal to +.Dq if(a==b) . +.El +.Pp +Directory comparison options: +.Bl -tag -width Ds +.It Fl N , Fl Fl new-file +If a file is found in only one directory, act as if it was found in the +other directory too but was of zero size. +.It Fl P +If a file is found only in +.Ar dir2 , +act as if it was found in +.Ar dir1 +too but was of zero size. +.It Fl r , Fl Fl recursive +Causes application of +.Nm +recursively to common sub7 directories encountered. +.It Fl S Ar name , Fl starting-file Ns = Ns Ar name +Re-starts a directory +.Nm +in the middle, beginning with file +.Ar name . +.It Fl s , Fl Fl report-identical-files +Causes +.Nm +to report files which are the same, which are otherwise not mentioned. +.It Fl X Ar file , Fl Fl exclude-from Ns = Ns Ar file +Exclude files and subdirectories from comparison whose basenames match +lines in +.Ar file . +Multiple +.Fl X +options may be specified. +.It Fl x Ar pattern , Fl Fl exclude Ns = Ns Ar pattern +Exclude files and subdirectories from comparison whose basenames match +.Ar pattern . +Patterns are matched using shell-style globbing via +.Xr fnmatch 3 . +Multiple +.Fl x +options may be specified. +.It Fl v , Fl Fl version +Print version ino. +.El +.Pp +If both arguments are directories, +.Nm +sorts the contents of the directories by name, and then runs the +regular file +.Nm +algorithm, producing a change list, +on text files which are different. +Binary files which differ, +common subdirectories, and files which appear in only one directory +are described as such. +In directory mode only regular files and directories are compared. +If a non-regular file such as a device special file or +.Tn FIFO +is encountered, a diagnostic message is printed. +.Pp +If only one of +.Ar file1 +and +.Ar file2 +is a directory, +.Nm +is applied to the non-directory file and the file contained in +the directory file with a filename that is the same as the +last component of the non-directory file. +.Pp +If either +.Ar file1 +or +.Ar file2 +is +.Sq Fl , +the standard input is +used in its place. +.Ss Output Style +The default (without +.Fl e , +.Fl c , +or +.Fl n +.\" -C +options) +output contains lines of these forms, where +.Va XX , YY , ZZ , QQ +are line numbers respective of file order. +.Pp +.Bl -tag -width "XX,YYcZZ,QQ" -compact +.It Li XX Ns Ic a Ns Li YY +At (the end of) line +.Va XX +of +.Ar file1 , +append the contents +of line +.Va YY +of +.Ar file2 +to make them equal. +.It Li XX Ns Ic a Ns Li YY,ZZ +Same as above, but append the range of lines, +.Va YY +through +.Va ZZ +of +.Ar file2 +to line +.Va XX +of file1. +.It Li XX Ns Ic d Ns Li YY +At line +.Va XX +delete +the line. +The value +.Va YY +tells to which line the change would bring +.Ar file1 +in line with +.Ar file1 . +.It Li XX,YY Ns Ic d Ns Li ZZ +Delete the range of lines +.Va XX +through +.Va YY +in +.Ar file1 . +.It Li XX Ns Ic c Ns Li YY +Change the line +.Va XX +in +.Ar file1 +to the line +.Va YY +in +.Ar file2 . +.It Li XX,YY Ns Ic c Ns Li ZZ +Replace the range of specified lines with the line +.Va ZZ . +.It Li XX,YY Ns Ic c Ns Li ZZ,QQ +Replace the range +.Va XX , Ns Va YY +from +.Ar file1 +with the range +.Va ZZ , Ns Va QQ +from +.Ar file2 . +.El +.Pp +These lines resemble +.Xr ed 1 +subcommands to convert +.Ar file1 +into +.Ar file2 . +The line numbers before the action letters pertain to +.Ar file1 ; +those after pertain to +.Ar file2 . +Thus, by exchanging +.Ic a +for +.Ic d +and reading the line in reverse order, one can also +determine how to convert +.Ar file2 +into +.Ar file1 . +As in +.Xr ed 1 , +identical +pairs (where num1 = num2) are abbreviated as a single +number. +.Sh ENVIRONMENT +.Bl -tag -width TMPDIR +.It Ev TMPDIR +If the environment variable +.Ev TMPDIR +exists, +.Nm +will use the directory specified by +.Ev TMPDIR +as the temporary directory. +.El +.Sh FILES +.Bl -tag -width /tmp/diff.XXXXXXXX -compact +.It Pa /tmp/diff. Ns Ar XXXXXXXX +Temporary file used when comparing a device or the standard input. +Note that the temporary file is unlinked as soon as it is created +so it will not show up in a directory listing. +.El +.Sh DIAGNOSTICS +The +.Nm +utility exits with one of the following values: +.Pp +.Bl -tag -width Ds -compact -offset indent +.It 0 +No differences were found. +.It 1 +Differences were found. +.It \*(Gt1 +An error occurred. +.El +.Sh SEE ALSO +.Xr cmp 1 , +.Xr comm 1 , +.Xr diff3 1 , +.Xr ed 1 , +.Xr pr 1 , +.Xr sdiff 1 , +.Xr fnmatch 3 , +.Xr re_format 7 +.Sh STANDARDS +The +.Nm +utility is compliant with the +St -p1003.1-2004 +specification. +.Pp +The flags +.Op Fl aDdIiLlNnPpqSsTtUuwXx +are extensions to that specification. +.Sh HISTORY +A +.Nm +command appeared in +.At v6 . +.Sh BUGS +When comparing directories with the +.Fl b , +.Fl w +or +.Fl i +options specified, +.Nm +first compares the files ala +.Xr cmp 1 , +and then decides to run the +.Nm +algorithm if they are not equal. +This may cause a small amount of spurious output if the files +then turn out to be identical because the only differences are +insignificant whitespace or case differences. Added: soc2012/jhagewood/diff/diff-orig/diff.1.gz ============================================================================== Binary file. No diff available. Added: soc2012/jhagewood/diff/diff-orig/diff.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/jhagewood/diff/diff-orig/diff.c Fri Jun 15 23:01:33 2012 (r237789) @@ -0,0 +1,599 @@ +/*- + * Copyright (c) 2003 Todd C. Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Sponsored in part by the Defense Advanced Research Projects + * Agency (DARPA) and Air Force Research Laboratory, Air Force + * Materiel Command, USAF, under agreement number F39502-99-1-0512. + */ + +#include + +#ifndef lint +#if 0 +__RCSID("$OpenBSD: diff.c,v 1.50 2007/05/29 18:24:56 ray Exp $"); +#else +__FBSDID("$FreeBSD$"); +#endif +#endif /* not lint */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "diff.h" +#include "pathnames.h" + +int aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag; +int sflag, tflag, Tflag, wflag; +int Bflag, yflag; +int strip_cr, tabsize=8; +char ignore_file_case = 0; +int format, context, status; +char *start, *ifdefname, *diffargs, *label[2], *ignore_pats; +struct stat stb1, stb2; +struct excludes *excludes_list; +regex_t ignore_re; + +int flag_opts = 0; + +#define OPTIONS "0123456789aBbC:cdD:efhI:iL:lnNPpqrS:sTtU:uvwXy:x" + + +/* Options which exceed manageable alphanumeric assignments */ +enum +{ + OPT_IGN_FN_CASE = CHAR_MAX + 1, + OPT_NIGN_FN_CASE, + OPT_STRIPCR, + OPT_NORMAL, + OPT_LEFTC, + OT_SUPCL, + OPT_GTYPE, + OPT_LF, + OPT_LLF, + OPT_TSIZE, + OPT_UNINF, + OPT_FFILE, + OPT_TOFILE, + OPT_HLINES, + OPT_LFILES, + OPT_HELP, +}; + + +static struct option longopts[] = { +/* XXX: UNIMPLEMENTED + { "normal", no_argument, NULL, OPT_NORMAL }, + { "left-column", no_argument, NULL, OPT_LEFTC }, + { "suppress-common-lines", no_argument, NULL, OT_SUPCL }, + { "GTYPE-group-format", required_argument, NULL, OPT_GTYPE }, + { "line-format", required_argument, NULL, OPT_LF }, + { "LTYPE-line-format", required_argument, NULL, OPT_LLF }, + { "unidirectional-new-file", no_argument, NULL, OPT_UNINF }, + { "from-file", required_argument, NULL, OPT_FFILE }, + { "to-file", required_argument, NULL, OPT_TOFILE }, + { "horizon-lines", required_argument, NULL, OPT_HLINES }, + { "speed-large-files", no_argument, NULL, OPT_LFILES }, */ + { "tabsize", optional_argument, NULL, OPT_TSIZE }, + { "strip-trailing-cr", no_argument, NULL, OPT_STRIPCR }, + { "help", no_argument, NULL, OPT_HELP }, + { "ignore-file-name-case", no_argument, NULL, OPT_IGN_FN_CASE }, + { "no-ignore-file-name-case", no_argument, NULL, OPT_NIGN_FN_CASE }, + { "text", no_argument, NULL, 'a' }, +/* XXX: UNIMPLEMENTED */ + { "ignore-blank-lines", no_argument, NULL, 'B' }, + { "ignore-space-change", no_argument, NULL, 'b' }, +/* XXX: -c is incompatible with GNU version */ + { "context", optional_argument, NULL, 'C' }, + { "ifdef", required_argument, NULL, 'D' }, + { "minimal", no_argument, NULL, 'd' }, +/* XXX: UNIMPLEMENTED + { "ignore-tab-expansion", no_argument, NULL, 'E' }, */ + { "ed", no_argument, NULL, 'e' }, +/* XXX: UNIMPLEMENTED + { "show-function-line", required_argument, NULL, 'F' }, */ + { "forward-ed", no_argument, NULL, 'f' }, + { "ignore-matching-lines", required_argument, NULL, 'I' }, + { "ignore-case", no_argument, NULL, 'i' }, + { "label", required_argument, NULL, 'L' }, + { "paginate", no_argument, NULL, 'l' }, + { "new-file", no_argument, NULL, 'N' }, + { "rcs", no_argument, NULL, 'n' }, + { "unidirectional-new-file", no_argument, NULL, 'P' }, + { "show-c-function", no_argument, NULL, 'p' }, + { "brief", no_argument, NULL, 'q' }, + { "recursive", no_argument, NULL, 'r' }, + { "starting-file", required_argument, NULL, 'S' }, + { "report-identical-files", no_argument, NULL, 's' }, + { "initial-tab", no_argument, NULL, 'T' }, + { "expand-tabs", no_argument, NULL, 't' }, +/* XXX: -u is incompatible with GNU version */ + { "unified", optional_argument, NULL, 'U' }, + { "version", no_argument, NULL, 'v' }, +/* XXX: UNIMPLEMENTED + { "width", optional_argument, NULL, 'W' }, */ + { "ignore-all-space", no_argument, NULL, 'w' }, + { "exclude-from", required_argument, NULL, 'X' }, + { "exclude", required_argument, NULL, 'x' }, + { "side-by-side", no_argument, NULL, 'y' }, + { NULL, 0, NULL, '\0'} +}; + +static const char *help_msg[] = { +"-a --text treat files as ASCII text", +"-B --ignore-blank-lines Ignore blank newlines in the comparison", +"-b --ignore-space-change Ignore all changes due to whitespace", +"-C NUM --context=[NUM] Show NUM lines before and after change (default 3)", +"-D --ifdef=NAME", +NULL, +}; +char **help_strs = (char **)help_msg; + +void set_argstr(char **, char **); + + +void usage(void); +void push_excludes(char *); +void push_ignore_pats(char *); +void read_excludes_file(char *); + +int +main(int argc, char **argv) +{ + char *ep, **oargv; + long l; + int ch, lastch, gotstdin, prevoptind, newarg; + int oargc; + + oargv = argv; + oargc = argc; + gotstdin = 0; + + lastch = '\0'; + prevoptind = 1; + newarg = 1; + while ((ch = getopt_long(argc, argv, OPTIONS, longopts, NULL)) != -1) { + switch (ch) { + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + if (newarg) + usage(); /* disallow -[0-9]+ */ + else if (lastch == 'c' || lastch == 'u') + context = 0; + else if (!isdigit(lastch) || context > INT_MAX / 10) + usage(); + context = (context * 10) + (ch - '0'); + break; + case 'a': + aflag = 1; + break; + case 'b': + bflag = 1; + break; + case 'B': + Bflag = 1; + break; + case 'C': + case 'c': + format = D_CONTEXT; + if (optarg != NULL) { + l = strtol(optarg, &ep, 10); + if (*ep != '\0' || l < 0 || l >= INT_MAX) + usage(); + context = (int)l; + } else + context = 3; + break; + case 'D': + format = D_IFDEF; + ifdefname = optarg; + break; + case 'd': + dflag = 1; + break; + case 'e': + format = D_EDIT; + break; + case 'f': + format = D_REVERSE; + break; + case 'h': + /* silently ignore for backwards compatibility */ + break; + case 'I': + push_ignore_pats(optarg); + break; + case 'i': + iflag = 1; + break; + case 'L': + if (label[0] == NULL) + label[0] = optarg; + else if (label[1] == NULL) + label[1] = optarg; + else + usage(); + break; + case 'l': + lflag = 1; + signal(SIGPIPE, SIG_IGN); + break; + case 'N': + Nflag = 1; + break; + case 'n': + format = D_NREVERSE; + break; + case 'P': + Pflag = 1; + break; + case 'p': + pflag = 1; + break; + case 'r': + rflag = 1; + break; + case 'q': + format = D_BRIEF; + break; + case 'S': + start = optarg; + break; + case 's': + sflag = 1; + break; + case 'T': + Tflag = 1; + break; + case 't': + tflag = 1; + break; + case 'U': + case 'u': + format = D_UNIFIED; + if (optarg != NULL) { + l = strtol(optarg, &ep, 10); + if (*ep != '\0' || l < 0 || l >= INT_MAX) + usage(); + context = (int)l; + } else + context = 3; + break; + case 'v': + printf("FreeBSD diff 2.8.7\n"); + exit(0); + case 'w': + wflag = 1; + break; + case 'X': + read_excludes_file(optarg); + break; + case 'x': + push_excludes(optarg); + break; + case 'y': + yflag = 1; + break; + case OPT_TSIZE: + if (optarg != NULL) { + l = strtol(optarg, &ep, 10); + if (*ep != '\0' || l < 1 || l >= INT_MAX) + usage(); + tabsize = (int)l; + } else + tabsize = 8; + break; + case OPT_STRIPCR: + strip_cr=1; + break; + case OPT_IGN_FN_CASE: + ignore_file_case = 1; + break; + case OPT_NIGN_FN_CASE: + ignore_file_case = 0; + break; + case OPT_HELP: + for(;*help_strs;help_strs++) + { + printf("%s\n", *help_strs); + } + exit(2); + break; + default: + usage(); + break; + } + lastch = ch; + newarg = optind != prevoptind; + prevoptind = optind; + } + argc -= optind; + argv += optind; + + if(yflag) { + /* remove y flag from args and call sdiff */ + for(argv=oargv; argv && strcmp(*argv, "-y") != 0; argv++); + while(argv != &oargv[oargc]){ + *argv=*(argv+1); + argv++; + } + oargv[0] = _PATH_SDIFF; + *argv= "\0"; + + execv(_PATH_SDIFF, oargv); + _exit(127); + } + + /* + * Do sanity checks, fill in stb1 and stb2 and call the appropriate + * driver routine. Both drivers use the contents of stb1 and stb2. + */ + if (argc != 2) + usage(); + if (ignore_pats != NULL) { + char buf[BUFSIZ]; + int error; + + if ((error = regcomp(&ignore_re, ignore_pats, + REG_NEWLINE | REG_EXTENDED)) != 0) { + regerror(error, &ignore_re, buf, sizeof(buf)); + if (*ignore_pats != '\0') + errx(2, "%s: %s", ignore_pats, buf); + else + errx(2, "%s", buf); + } + } + if (strcmp(argv[0], "-") == 0) { + fstat(STDIN_FILENO, &stb1); + gotstdin = 1; + } else if (stat(argv[0], &stb1) != 0) + err(2, "%s", argv[0]); + if (strcmp(argv[1], "-") == 0) { + fstat(STDIN_FILENO, &stb2); + gotstdin = 1; + } else if (stat(argv[1], &stb2) != 0) + err(2, "%s", argv[1]); + if (gotstdin && (S_ISDIR(stb1.st_mode) || S_ISDIR(stb2.st_mode))) + errx(2, "can't compare - to a directory"); + set_argstr(oargv, argv); + if (S_ISDIR(stb1.st_mode) && S_ISDIR(stb2.st_mode)) { + if (format == D_IFDEF) + errx(2, "-D option not supported with directories"); + diffdir(argv[0], argv[1]); + } else { + if (S_ISDIR(stb1.st_mode)) { + argv[0] = splice(argv[0], argv[1]); + if (stat(argv[0], &stb1) < 0) + err(2, "%s", argv[0]); + } + if (S_ISDIR(stb2.st_mode)) { + argv[1] = splice(argv[1], argv[0]); + if (stat(argv[1], &stb2) < 0) + err(2, "%s", argv[1]); + } + print_status(diffreg(argv[0], argv[1], 0), argv[0], argv[1], + NULL); + } + exit(status); +} + +void * +emalloc(size_t n) +{ + void *p; + + if (n == 0) + errx(2, NULL); + + if ((p = malloc(n)) == NULL) + errx(2, NULL); + return (p); +} + +void * *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-soc-all@FreeBSD.ORG Sat Jun 16 05:31:43 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id AEAC61065672 for ; Sat, 16 Jun 2012 05:31:41 +0000 (UTC) (envelope-from gmiller@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Sat, 16 Jun 2012 05:31:41 +0000 Date: Sat, 16 Jun 2012 05:31:41 +0000 From: gmiller@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120616053141.AEAC61065672@hub.freebsd.org> Cc: Subject: socsvn commit: r237794 - in soc2012/gmiller/locking-head: include lib/libthr/thread X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Jun 2012 05:31:43 -0000 Author: gmiller Date: Sat Jun 16 05:31:40 2012 New Revision: 237794 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237794 Log: Implement profiling of read/write locks. Modified: soc2012/gmiller/locking-head/include/pthread.h soc2012/gmiller/locking-head/lib/libthr/thread/thr_exit.c soc2012/gmiller/locking-head/lib/libthr/thread/thr_mutex.c soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c soc2012/gmiller/locking-head/lib/libthr/thread/thr_rwlock.c Modified: soc2012/gmiller/locking-head/include/pthread.h ============================================================================== --- soc2012/gmiller/locking-head/include/pthread.h Sat Jun 16 04:41:35 2012 (r237793) +++ soc2012/gmiller/locking-head/include/pthread.h Sat Jun 16 05:31:40 2012 (r237794) @@ -336,6 +336,8 @@ int _pthread_rwlock_wrlock_profiled(pthread_rwlock_t *, const char *, int); +int _pthread_rwlock_unlock_profiled(pthread_rwlock_t *, + const char *, int); int _pthread_spin_lock_profiled(pthread_spinlock_t *, const char *, int); Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_exit.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_exit.c Sat Jun 16 04:41:35 2012 (r237793) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_exit.c Sat Jun 16 05:31:40 2012 (r237794) @@ -263,8 +263,6 @@ { struct pthread *curthread = _get_curthread(); - LOCK_PROFILE_EXIT_THREAD(curthread); - /* Check if there is thread specific data: */ if (curthread->specific != NULL) { /* Run the thread-specific data destructors: */ Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_mutex.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_mutex.c Sat Jun 16 04:41:35 2012 (r237793) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_mutex.c Sat Jun 16 05:31:40 2012 (r237794) @@ -357,11 +357,11 @@ ret = _thr_umutex_trylock(&m->m_lock, id); if (__predict_true(ret == 0)) { ENQUEUE_MUTEX(curthread, m); - MUTEX_OBTAIN_SUCCESS(m, &waittime); + LOCK_PROFILE_OBTAIN_SUCCESS(m, &waittime); } else if (m->m_owner == curthread) { ret = mutex_self_trylock(m _PROFILE_PASS); } else { - MUTEX_OBTAIN_FAILED(m, &waittime); + LOCK_PROFILE_OBTAIN_FAILED(&waittime); } if (ret && (m->m_flags & PMUTEX_FLAG_PRIVATE)) @@ -405,7 +405,7 @@ if (m->m_owner == curthread) return mutex_self_lock(m, abstime _PROFILE_PASS); - MUTEX_OBTAIN_FAILED(m, &waittime); + LOCK_PROFILE_OBTAIN_FAILED(&waittime); id = TID(curthread); /* @@ -460,7 +460,7 @@ done: if (ret == 0) { ENQUEUE_MUTEX(curthread, m); - MUTEX_OBTAIN_SUCCESS(m, &waittime); + LOCK_PROFILE_OBTAIN_SUCCESS(m, &waittime); } return (ret); @@ -483,7 +483,7 @@ ENQUEUE_MUTEX(curthread, m); ret = 0; - MUTEX_OBTAIN_SUCCESS(m, &waittime); + LOCK_PROFILE_OBTAIN_SUCCESS(m, &waittime); } else { ret = mutex_lock_sleep(curthread, m, abstime _PROFILE_PASS); } @@ -653,9 +653,9 @@ } if (ret == 0) { - MUTEX_OBTAIN_SUCCESS(m, &waittime); + LOCK_PROFILE_OBTAIN_SUCCESS(m, &waittime); } else { - MUTEX_OBTAIN_FAILED(m, &waittime); + LOCK_PROFILE_OBTAIN_FAILED(&waittime); } return (ret); @@ -675,7 +675,7 @@ switch (PMUTEX_TYPE(m->m_flags)) { case PTHREAD_MUTEX_ERRORCHECK: case PTHREAD_MUTEX_ADAPTIVE_NP: - MUTEX_OBTAIN_FAILED(m, &waittime); + LOCK_PROFILE_OBTAIN_FAILED(&waittime); if (abstime) { if (abstime->tv_sec < 0 || abstime->tv_nsec < 0 || @@ -701,7 +701,7 @@ * What SS2 define as a 'normal' mutex. Intentionally * deadlock on attempts to get a lock you already own. */ - MUTEX_OBTAIN_FAILED(m, &waittime); + LOCK_PROFILE_OBTAIN_FAILED(&waittime); ret = 0; if (abstime) { @@ -729,7 +729,7 @@ ret = 0; } else { ret = EAGAIN; - MUTEX_OBTAIN_FAILED(m, &waittime); + LOCK_PROFILE_OBTAIN_FAILED(&waittime); } break; @@ -739,7 +739,7 @@ } if (ret == 0) { - MUTEX_OBTAIN_SUCCESS(m, &waittime); + LOCK_PROFILE_OBTAIN_SUCCESS(m, &waittime); } return (ret); @@ -771,10 +771,10 @@ m->m_count--; if (m->m_count == 0) { - MUTEX_RELEASE(m); + LOCK_PROFILE_RELEASE(m); } } else { - MUTEX_RELEASE(m); + LOCK_PROFILE_RELEASE(m); if ((m->m_flags & PMUTEX_FLAG_DEFERED) != 0) { defered = 1; Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h Sat Jun 16 04:41:35 2012 (r237793) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h Sat Jun 16 05:31:40 2012 (r237794) @@ -749,25 +749,11 @@ int _mutex_owned(struct pthread *, const struct pthread_mutex *) __hidden; int _mutex_reinit(pthread_mutex_t *) __hidden; void _mutex_fork(struct pthread *curthread) __hidden; -void _mutex_obtain_failed(struct pthread_mutex *, struct timespec *, - const char *) __hidden; -void _mutex_obtain_success(struct pthread_mutex *, struct timespec *, - const char *, int) __hidden; void _lock_profile_init(void) __hidden; -void _lock_profile_exit_thread(struct pthread *curthread) __hidden; -void _rwlock_obtain_read_success(struct pthread_rwlock *, - struct timespec *wait_time, const char *file, int line) __hidden; -void _rwlock_obtain_read_failed(struct pthread_rwlock *, - struct timespec *wait_time) __hidden; -void _rwlock_obtain_write_success(struct pthread_rwlock *, - struct timespec *wait_time, const char *file, int line) __hidden; -void _rwlock_obtain_write_failed(struct pthread_rwlock *, - struct timespec *wait_time) __hidden; -void _rwlock_release_read(struct pthread_rwlock *, struct timespec *) - __hidden; -void _rwlock_release_write(struct pthread_rwlock *, struct timespec *) - __hidden; -void _mutex_release(struct pthread_mutex *, const char *file) __hidden; +void _lock_profile_obtain_failed(struct timespec *, const char *) __hidden; +void _lock_profile_obtain_success(void *, struct timespec *, const char *, + int) __hidden; +void _lock_profile_release(void *, const char *file) __hidden; void _spin_obtain_success(struct pthread_spinlock *, struct timespec *wait_time, const char *file, int line) __hidden; void _spin_obtain_failed(struct pthread_spinlock *, @@ -835,23 +821,11 @@ #define INIT_LOCK_PROFILING() \ _lock_profile_init() -#define LOCK_PROFILE_EXIT_THREAD(t) \ - _lock_profile_exit_thread(t) -#define MUTEX_OBTAIN_SUCCESS(m, ts) \ - _mutex_obtain_success(m, ts, file, line) -#define MUTEX_OBTAIN_FAILED(m, ts) \ - _mutex_obtain_failed(m, ts, file) -#define MUTEX_RELEASE(m) _mutex_release(m, file) -#define RWLOCK_OBTAIN_READ_SUCCESS(l, ts) \ - _rwlock_obtain_read_success(l, ts, file, line) -#define RWLOCK_OBTAIN_READ_FAILED(l, ts) \ - _rwlock_obtain_read_failed(l, ts) -#define RWLOCK_OBTAIN_WRITE_SUCCESS(l, ts) \ - _rwlock_obtain_write_success(l, ts, file, line) -#define RWLOCK_OBTAIN_WRITE_FAILED(l, ts) \ - _rwlock_obtain_write_failed(l, ts) -#define RWLOCK_RELEASE_READ(l, ts) _rwlock_release_read(l, ts) -#define RWLOCK_RELEASE_WRITE(l, ts) _rwlock_release_write(l, ts) +#define LOCK_PROFILE_OBTAIN_SUCCESS(l, ts) \ + _lock_profile_obtain_success(l, ts, file, line) +#define LOCK_PROFILE_OBTAIN_FAILED(ts) \ + _lock_profile_obtain_failed(ts, file) +#define LOCK_PROFILE_RELEASE(l) _lock_profile_release(l, file) #define SPIN_OBTAIN_SUCCESS(s, ts) \ _spin_obtain_success(s, ts, file, line) #define SPIN_OBTAIN_FAILED(s, ts) \ @@ -862,16 +836,9 @@ #else #define INIT_LOCK_PROFILING() do { } while (0) -#define LOCK_PROFILE_EXIT_THREAD(t) do { } while (0) -#define MUTEX_OBTAIN_SUCCESS(m, ts) do { } while (0) -#define MUTEX_OBTAIN_FAILED(m, ts) do { } while (0) -#define MUTEX_RELEASE(m) do { } while (0) -#define RWLOCK_OBTAIN_READ_SUCCESS(l, ts) do { } while (0) -#define RWLOCK_OBTAIN_READ_FAILED(l, ts) do { } while (0) -#define RWLOCK_OBTAIN_WRITE_SUCCESS(l, ts) do { } while (0) -#define RWLOCK_OBTAIN_WRITE_FAILED(l, ts) do { } while (0) -#define RWLOCK_RELEASE_READ(l, ts) do { } while (0) -#define RWLOCK_RELEASE_WRITE(l, ts) do { } while (0) +#define LOCK_PROFILE_OBTAIN_SUCCESS(l, ts) do { } while (0) +#define LOCK_PROFILE_OBTAIN_FAILED(ts) do { } while (0) +#define LOCK_PROFILE_RELEASE(l) do { } while (0) #define SPIN_OBTAIN_SUCCESS(s, ts) do { } while (0) #define SPIN_OBTAIN_FAILED(s, ts) do { } while (0) #define SPIN_RELEASE(s, ts) do { } while (0) Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Sat Jun 16 04:41:35 2012 (r237793) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Sat Jun 16 05:31:40 2012 (r237794) @@ -65,7 +65,7 @@ static LIST_HEAD(acq_head, acquisition) acq_head = LIST_HEAD_INITIALIZER(acq_head); -struct acq_point_head mutex_hash[LOCK_PROF_HASH_SIZE]; +static struct acq_point_head lock_hash[LOCK_PROF_HASH_SIZE]; struct _pthread_statistics_private { u_int hash; @@ -80,14 +80,14 @@ int i; for (i = 0; i < LOCK_PROF_HASH_SIZE; i++) { - SLIST_INIT(&mutex_hash[i]); + SLIST_INIT(&lock_hash[i]); } lockprof_enabled = 1; } static struct acquisition * -mutex_lookup_acq(struct pthread_mutex *m, const char *file, int line) +lookup_acq(void *lock, const char *file, int line) { struct acquisition *acq; @@ -98,7 +98,7 @@ } acq = calloc(1, sizeof(*acq)); - acq->lock = m; + acq->lock = lock; acq->file = file; acq->line = line; @@ -108,14 +108,14 @@ } static struct acquisition_point * -mutex_lookup_acq_point(struct pthread_mutex *m, const char *file, int line) +lookup_acq_point(const char *file, int line) { u_int hash; struct acquisition_point *acq_point; hash = ((uintptr_t)file * 31 + line) & (LOCK_PROF_HASH_SIZE - 1); - SLIST_FOREACH(acq_point, &mutex_hash[hash], acq_point_next) { + SLIST_FOREACH(acq_point, &lock_hash[hash], acq_point_next) { if (acq_point->file == file && acq_point->line == line) { return (acq_point); } @@ -125,14 +125,14 @@ acq_point->file = file; acq_point->line = line; - SLIST_INSERT_HEAD(&mutex_hash[hash], acq_point, acq_point_next); + SLIST_INSERT_HEAD(&lock_hash[hash], acq_point, acq_point_next); return (acq_point); } void -_mutex_obtain_success(struct pthread_mutex *m, struct timespec *wait_time, - const char *file, int line) +_lock_profile_obtain_success(void *lock, struct timespec *wait_time, + const char *file, int line) { struct pthread *curthread = _get_curthread(); struct acquisition *acq; @@ -143,7 +143,7 @@ THR_CRITICAL_ENTER(curthread); - acq = mutex_lookup_acq(m, file, line); + acq = lookup_acq(lock, file, line); if (acq != NULL) { acq->count++; acq->ref++; @@ -165,8 +165,7 @@ } void -_mutex_obtain_failed(struct pthread_mutex *m, struct timespec *wait_time, - const char *file) +_lock_profile_obtain_failed(struct timespec *wait_time, const char *file) { if (file == NULL || !lockprof_enabled) { return; @@ -178,7 +177,7 @@ } void -_mutex_release(struct pthread_mutex *m, const char *file) +_lock_profile_release(void *lock, const char *file) { struct pthread *curthread = _get_curthread(); struct acquisition *acq; @@ -193,7 +192,7 @@ THR_CRITICAL_ENTER(curthread); LIST_FOREACH(acq, &acq_head, acq_next) { - if (acq->lock == m) { + if (acq->lock == lock) { break; } } @@ -201,8 +200,7 @@ if (acq != NULL) { acq->ref--; if (acq->ref == 0) { - acq_point = mutex_lookup_acq_point(m, acq->file, - acq->line); + acq_point = lookup_acq_point(acq->file, acq->line); clock_gettime(CLOCK_REALTIME, ¤t_time); if (acq_point != NULL) { bzero(&hold_time, sizeof(hold_time)); @@ -243,47 +241,6 @@ } void -_lock_profile_exit_thread(struct pthread *t) -{ -} - -void -_rwlock_obtain_read_success(struct pthread_rwlock *l, - struct timespec *wait_time, const char *file, - int line) -{ -} - -void -_rwlock_obtain_read_failed(struct pthread_rwlock *l, - struct timespec *wait_time) -{ -} - -void -_rwlock_obtain_write_success(struct pthread_rwlock *l, - struct timespec *wait_time, const char *file, - int line) -{ -} - -void -_rwlock_obtain_write_failed(struct pthread_rwlock *l, - struct timespec *watitime) -{ -} - -void -_rwlock_release_read(struct pthread_rwlock *l, struct timespec *wait_time) -{ -} - -void -_rwlock_release_write(struct pthread_rwlock *l, struct timespec *wait_time) -{ -} - -void _spin_obtain_success(struct pthread_spinlock *s, struct timespec *wait_time, const char *file, int line) { @@ -312,7 +269,7 @@ break; } else { stats->_pvt->last_record = - SLIST_FIRST(&mutex_hash[stats->_pvt->hash]); + SLIST_FIRST(&lock_hash[stats->_pvt->hash]); stats->_pvt->hash++; } } else { Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_rwlock.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_rwlock.c Sat Jun 16 04:41:35 2012 (r237793) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_rwlock.c Sat Jun 16 05:31:40 2012 (r237794) @@ -83,6 +83,9 @@ int _pthread_rwlock_trywrlock_profiled(pthread_rwlock_t *rwlock, const char *file, int line); +int _pthread_rwlock_unlock_profiled(pthread_rwlock_t *rwlock, + const char *file, + int line); #endif @@ -183,12 +186,12 @@ if (ret == 0) { curthread->rdlock_count++; - RWLOCK_OBTAIN_READ_SUCCESS(*rwlock, &waittime); + LOCK_PROFILE_OBTAIN_SUCCESS(*rwlock, &waittime); return (ret); } - RWLOCK_OBTAIN_READ_FAILED(*rwlock, &waittime); + LOCK_PROFILE_OBTAIN_FAILED(&waittime); if (__predict_false(abstime && (abstime->tv_nsec >= 1000000000 || abstime->tv_nsec < 0))) @@ -208,7 +211,7 @@ } if (ret == 0) { curthread->rdlock_count++; - RWLOCK_OBTAIN_READ_SUCCESS(*rwlock, &waittime); + LOCK_PROFILE_OBTAIN_SUCCESS(*rwlock, &waittime); } return (ret); @@ -291,9 +294,9 @@ ret = _thr_rwlock_tryrdlock(&prwlock->lock, flags); if (ret == 0) { curthread->rdlock_count++; - RWLOCK_OBTAIN_READ_SUCCESS(*rwlock, &waittime); + LOCK_PROFILE_OBTAIN_SUCCESS(*rwlock, &waittime); } else { - RWLOCK_OBTAIN_READ_FAILED(*rwlock, &waittime); + LOCK_PROFILE_OBTAIN_FAILED(&waittime); } return (ret); } @@ -324,9 +327,9 @@ ret = _thr_rwlock_trywrlock(&prwlock->lock); if (ret == 0) { prwlock->owner = curthread; - RWLOCK_OBTAIN_WRITE_SUCCESS(*rwlock, &waittime); + LOCK_PROFILE_OBTAIN_SUCCESS(*rwlock, &waittime); } else { - RWLOCK_OBTAIN_WRITE_FAILED(*rwlock, &waittime); + LOCK_PROFILE_OBTAIN_FAILED(&waittime); } return (ret); } @@ -354,12 +357,12 @@ if (ret == 0) { prwlock->owner = curthread; - RWLOCK_OBTAIN_WRITE_SUCCESS(*rwlock, &waittime); + LOCK_PROFILE_OBTAIN_SUCCESS(*rwlock, &waittime); return (ret); } - RWLOCK_OBTAIN_WRITE_FAILED(*rwlock, &waittime); + LOCK_PROFILE_OBTAIN_FAILED(&waittime); if (__predict_false(abstime && (abstime->tv_nsec >= 1000000000 || abstime->tv_nsec < 0))) @@ -385,9 +388,9 @@ } if (ret == 0) { - RWLOCK_OBTAIN_WRITE_SUCCESS(*rwlock, &waittime); + LOCK_PROFILE_OBTAIN_SUCCESS(*rwlock, &waittime); } else { - RWLOCK_OBTAIN_WRITE_FAILED(*rwlock, &waittime); + LOCK_PROFILE_OBTAIN_FAILED(&waittime); } return (ret); @@ -427,17 +430,21 @@ } int -_pthread_rwlock_unlock (pthread_rwlock_t *rwlock) +_pthread_rwlock_unlock(pthread_rwlock_t *rwlock) +#ifdef LOCK_PROFILING +{ + return (_pthread_rwlock_unlock_profiled(rwlock, NULL, 0)); +} + +int +_pthread_rwlock_unlock_profiled(pthread_rwlock_t *rwlock, const char *file, + int line) +#endif { struct pthread *curthread = _get_curthread(); pthread_rwlock_t prwlock; int ret; int32_t state; -#ifdef LOCK_PROFILING - struct timespec waittime; - - bzero(&waittime, sizeof(waittime)); -#endif prwlock = *rwlock; if (__predict_false(prwlock <= THR_RWLOCK_DESTROYED)) @@ -453,9 +460,10 @@ ret = _thr_rwlock_unlock(&prwlock->lock); if (ret == 0 && (state & URWLOCK_WRITE_OWNER) == 0) { curthread->rdlock_count--; - RWLOCK_RELEASE_READ(*rwlock, &waittime); - } else if (ret == 0) { - RWLOCK_RELEASE_WRITE(*rwlock, &waittime); + } + + if (ret == 0) { + LOCK_PROFILE_RELEASE(*rwlock); } return (ret); From owner-svn-soc-all@FreeBSD.ORG Sat Jun 16 21:17:05 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 9FDB81065677 for ; Sat, 16 Jun 2012 21:17:03 +0000 (UTC) (envelope-from gmiller@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Sat, 16 Jun 2012 21:17:03 +0000 Date: Sat, 16 Jun 2012 21:17:03 +0000 From: gmiller@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120616211703.9FDB81065677@hub.freebsd.org> Cc: Subject: socsvn commit: r237812 - in soc2012/gmiller/locking-head: include lib/libthr/thread X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Jun 2012 21:17:05 -0000 Author: gmiller Date: Sat Jun 16 21:17:03 2012 New Revision: 237812 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237812 Log: Implement profiling of spinlocks. Modified: soc2012/gmiller/locking-head/include/pthread.h soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c soc2012/gmiller/locking-head/lib/libthr/thread/thr_pspinlock.c Modified: soc2012/gmiller/locking-head/include/pthread.h ============================================================================== --- soc2012/gmiller/locking-head/include/pthread.h Sat Jun 16 20:49:08 2012 (r237811) +++ soc2012/gmiller/locking-head/include/pthread.h Sat Jun 16 21:17:03 2012 (r237812) @@ -344,6 +344,8 @@ int _pthread_spin_trylock_profiled(pthread_spinlock_t *, const char *, int); +int _pthread_spin_unlock_profiled(pthread_spinlock_t *, + const char *, int); #ifdef pthread_mutex_lock @@ -359,8 +361,10 @@ #undef pthread_rwlock_timedwrlock #undef pthread_rwlock_tryrdlock #undef pthread_rwlock_trywrlock +#undef pthread_rwlock_unlock #undef pthread_spin_lock #undef pthread_spin_trylock +#undef pthread_spin_unlock #endif @@ -392,6 +396,8 @@ _pthread_spin_lock(s, __FILE__, __LINE__) #define pthread_spin_trylock(s) \ _pthread_spin_trylock(s, __FILE__, __LINE__) +#define pthread_spin_unlock(s) \ + _pthread_spin_unlock(s, __FILE__, __LINE__) #endif Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h Sat Jun 16 20:49:08 2012 (r237811) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_private.h Sat Jun 16 21:17:03 2012 (r237812) @@ -754,11 +754,6 @@ void _lock_profile_obtain_success(void *, struct timespec *, const char *, int) __hidden; void _lock_profile_release(void *, const char *file) __hidden; -void _spin_obtain_success(struct pthread_spinlock *, - struct timespec *wait_time, const char *file, int line) __hidden; -void _spin_obtain_failed(struct pthread_spinlock *, - struct timespec *wait_time) __hidden; -void _spin_release(struct pthread_spinlock *, struct timespec *) __hidden; void _libpthread_init(struct pthread *) __hidden; struct pthread *_thr_alloc(struct pthread *) __hidden; void _thread_exit(const char *, int, const char *) __hidden __dead2; @@ -826,12 +821,6 @@ #define LOCK_PROFILE_OBTAIN_FAILED(ts) \ _lock_profile_obtain_failed(ts, file) #define LOCK_PROFILE_RELEASE(l) _lock_profile_release(l, file) -#define SPIN_OBTAIN_SUCCESS(s, ts) \ - _spin_obtain_success(s, ts, file, line) -#define SPIN_OBTAIN_FAILED(s, ts) \ - _spin_obtain_failed(s, ts) -#define SPIN_RELEASE(s, ts) \ - _spin_release(s, ts) #else @@ -839,9 +828,6 @@ #define LOCK_PROFILE_OBTAIN_SUCCESS(l, ts) do { } while (0) #define LOCK_PROFILE_OBTAIN_FAILED(ts) do { } while (0) #define LOCK_PROFILE_RELEASE(l) do { } while (0) -#define SPIN_OBTAIN_SUCCESS(s, ts) do { } while (0) -#define SPIN_OBTAIN_FAILED(s, ts) do { } while (0) -#define SPIN_RELEASE(s, ts) do { } while (0) #endif Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Sat Jun 16 20:49:08 2012 (r237811) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Sat Jun 16 21:17:03 2012 (r237812) @@ -240,22 +240,6 @@ THR_CRITICAL_LEAVE(curthread); } -void -_spin_obtain_success(struct pthread_spinlock *s, struct timespec *wait_time, - const char *file, int line) -{ -} - -void -_spin_obtain_failed(struct pthread_spinlock *s, struct timespec *wait_time) -{ -} - -void -_spin_release(struct pthread_spinlock *s, struct timespec *wait_time) -{ -} - static int find_next_record(struct pthread_statistics_np *stats) { Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_pspinlock.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_pspinlock.c Sat Jun 16 20:49:08 2012 (r237811) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_pspinlock.c Sat Jun 16 21:17:03 2012 (r237812) @@ -44,10 +44,12 @@ #ifdef LOCK_PROFILING -int _pthread_spin_trylock_profiled(pthread_spinlock_t *lock, - const char *file, int line); int _pthread_spin_lock_profiled(pthread_spinlock_t *lock, const char *file, int line); +int _pthread_spin_trylock_profiled(pthread_spinlock_t *lock, + const char *file, int line); +int _pthread_spin_unlock_profiled(pthread_spinlock_t *lock, + const char *file, int line); #endif @@ -111,9 +113,9 @@ else { ret = THR_UMUTEX_TRYLOCK(curthread, &lck->s_lock); if (ret == 0) { - SPIN_OBTAIN_SUCCESS(lck, &waittime); + LOCK_PROFILE_OBTAIN_SUCCESS(lck, &waittime); } else { - SPIN_OBTAIN_FAILED(lck, &waittime); + LOCK_PROFILE_OBTAIN_FAILED(&waittime); } } @@ -149,7 +151,7 @@ #ifdef LOCK_PROFILING if (!spin_needed) { spin_needed = 1; - SPIN_OBTAIN_FAILED(lck, &waittime); + LOCK_PROFILE_OBTAIN_FAILED(&waittime); } #endif while (lck->s_lock.m_owner) { @@ -166,7 +168,7 @@ } } ret = 0; - SPIN_OBTAIN_SUCCESS(lck, &waittime); + LOCK_PROFILE_OBTAIN_SUCCESS(lck, &waittime); } return (ret); @@ -174,21 +176,26 @@ int _pthread_spin_unlock(pthread_spinlock_t *lock) +#ifdef LOCK_PROFILING +{ + return (_pthread_spin_unlock_profiled(lock, NULL, 0)); +} + +int +_pthread_spin_unlock_profiled(pthread_spinlock_t *lock, const char *file, + int line) +#endif { struct pthread *curthread = _get_curthread(); struct pthread_spinlock *lck; int ret; -#ifdef LOCK_PROFILING - struct timespec waittime; - bzero(&waittime, sizeof(waittime)); -#endif if (lock == NULL || (lck = *lock) == NULL) ret = EINVAL; else { ret = THR_UMUTEX_UNLOCK(curthread, &lck->s_lock); if (ret == 0) { - SPIN_RELEASE(lck, &waittime); + LOCK_PROFILE_RELEASE(lck); } } return (ret); From owner-svn-soc-all@FreeBSD.ORG Sat Jun 16 22:04:37 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 305A4106564A for ; Sat, 16 Jun 2012 22:04:35 +0000 (UTC) (envelope-from gmiller@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Sat, 16 Jun 2012 22:04:35 +0000 Date: Sat, 16 Jun 2012 22:04:35 +0000 From: gmiller@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120616220435.305A4106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r237815 - soc2012/gmiller/locking-head/lib/libthr/thread X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Jun 2012 22:04:37 -0000 Author: gmiller Date: Sat Jun 16 22:04:34 2012 New Revision: 237815 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=237815 Log: Implement pthread_resetstatistics_np(). Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Modified: soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Sat Jun 16 21:39:00 2012 (r237814) +++ soc2012/gmiller/locking-head/lib/libthr/thread/thr_profile.c Sat Jun 16 22:04:34 2012 (r237815) @@ -307,6 +307,33 @@ } void +pthread_resetstatistics_np() +{ + struct pthread *curthread = _get_curthread(); + u_int hash; + struct acquisition_point *acq_point; + struct acquisition *acq; + + THR_CRITICAL_ENTER(curthread); + + for (hash = 0; hash < LOCK_PROF_HASH_SIZE; hash++) { + while (!SLIST_EMPTY(&lock_hash[hash])) { + acq_point = SLIST_FIRST(&lock_hash[hash]); + SLIST_REMOVE_HEAD(&lock_hash[hash], acq_point_next); + free(acq_point); + } + } + + while (!LIST_EMPTY(&acq_head)) { + acq = LIST_FIRST(&acq_head); + LIST_REMOVE(acq, acq_next); + free(acq); + } + + THR_CRITICAL_LEAVE(curthread); +} + +void pthread_lockprof_enable_np() { lockprof_enabled = 1;