Date: Fri, 25 Oct 2013 08:41:37 +0000 (UTC) From: Aleksandr Rybalko <ray@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r257108 - in user/ed/newcons: . cddl/contrib/opensolaris/cmd/zfs contrib/gperf/src etc etc/mtree lib/libcrypt lib/libcrypt/tests sbin/fsck_ffs sbin/geom/class/part sbin/growfs sbin/mdco... Message-ID: <201310250841.r9P8fbrK075298@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ray Date: Fri Oct 25 08:41:36 2013 New Revision: 257108 URL: http://svnweb.freebsd.org/changeset/base/257108 Log: MFC @r257107. Added: user/ed/newcons/etc/mtree/BSD.tests.dist - copied unchanged from r257107, head/etc/mtree/BSD.tests.dist user/ed/newcons/share/man/man7/tests.7 - copied unchanged from r257107, head/share/man/man7/tests.7 user/ed/newcons/share/mk/plain.test.mk - copied unchanged from r257107, head/share/mk/plain.test.mk user/ed/newcons/sys/arm/broadcom/bcm2835/bcm2835_spi.c - copied unchanged from r257107, head/sys/arm/broadcom/bcm2835/bcm2835_spi.c user/ed/newcons/sys/arm/broadcom/bcm2835/bcm2835_spireg.h - copied unchanged from r257107, head/sys/arm/broadcom/bcm2835/bcm2835_spireg.h user/ed/newcons/sys/arm/broadcom/bcm2835/bcm2835_spivar.h - copied unchanged from r257107, head/sys/arm/broadcom/bcm2835/bcm2835_spivar.h user/ed/newcons/sys/dev/iwn/if_iwn_debug.h - copied unchanged from r257107, head/sys/dev/iwn/if_iwn_debug.h user/ed/newcons/sys/dev/ofw/ofw_nexus.c - copied unchanged from r257107, head/sys/dev/ofw/ofw_nexus.c user/ed/newcons/sys/dev/ofw/ofw_nexus.h - copied unchanged from r257107, head/sys/dev/ofw/ofw_nexus.h user/ed/newcons/sys/dev/spibus/ofw_spibus.c - copied unchanged from r257107, head/sys/dev/spibus/ofw_spibus.c user/ed/newcons/sys/mips/conf/ALFA_HORNET_UB - copied unchanged from r257107, head/sys/mips/conf/ALFA_HORNET_UB user/ed/newcons/sys/mips/conf/ALFA_HORNET_UB.hints - copied unchanged from r257107, head/sys/mips/conf/ALFA_HORNET_UB.hints user/ed/newcons/tests/ - copied from r257107, head/tests/ user/ed/newcons/tools/build/options/WITHOUT_TESTS - copied unchanged from r257107, head/tools/build/options/WITHOUT_TESTS Deleted: user/ed/newcons/sys/kern/dtio_kdtrace.c user/ed/newcons/sys/mips/conf/BERI_SIM.hints user/ed/newcons/sys/modules/dtrace/dtio/ Modified: user/ed/newcons/Makefile.inc1 user/ed/newcons/ObsoleteFiles.inc user/ed/newcons/cddl/contrib/opensolaris/cmd/zfs/zfs.8 user/ed/newcons/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c user/ed/newcons/contrib/gperf/src/search.cc user/ed/newcons/etc/Makefile user/ed/newcons/etc/mtree/BSD.usr.dist user/ed/newcons/lib/libcrypt/Makefile user/ed/newcons/lib/libcrypt/tests/Makefile user/ed/newcons/sbin/fsck_ffs/ea.c user/ed/newcons/sbin/geom/class/part/geom_part.c user/ed/newcons/sbin/growfs/debug.c user/ed/newcons/sbin/mdconfig/mdconfig.c user/ed/newcons/share/man/man5/src.conf.5 user/ed/newcons/share/man/man7/Makefile user/ed/newcons/share/man/man7/hier.7 user/ed/newcons/share/mk/bsd.files.mk user/ed/newcons/share/mk/bsd.own.mk user/ed/newcons/share/mk/bsd.test.mk user/ed/newcons/sys/arm/broadcom/bcm2835/files.bcm2835 user/ed/newcons/sys/arm/conf/RPI-B user/ed/newcons/sys/arm/mv/gpio.c user/ed/newcons/sys/boot/fdt/dts/bcm2835.dtsi user/ed/newcons/sys/cam/ata/ata_da.c user/ed/newcons/sys/cam/cam_xpt.c user/ed/newcons/sys/cam/ctl/ctl_backend_block.c user/ed/newcons/sys/cam/scsi/scsi_da.c user/ed/newcons/sys/cddl/dev/dtrace/powerpc/dtrace_isa.c user/ed/newcons/sys/conf/NOTES user/ed/newcons/sys/conf/files user/ed/newcons/sys/conf/files.powerpc user/ed/newcons/sys/dev/fdt/fdt_common.c user/ed/newcons/sys/dev/fdt/fdt_pci.c user/ed/newcons/sys/dev/fdt/simplebus.c user/ed/newcons/sys/dev/iscsi/icl.c user/ed/newcons/sys/dev/iwn/if_iwn.c user/ed/newcons/sys/dev/iwn/if_iwnreg.h user/ed/newcons/sys/dev/oce/oce_hw.c user/ed/newcons/sys/dev/oce/oce_hw.h user/ed/newcons/sys/dev/oce/oce_if.c user/ed/newcons/sys/dev/oce/oce_if.h user/ed/newcons/sys/dev/oce/oce_mbox.c user/ed/newcons/sys/dev/oce/oce_queue.c user/ed/newcons/sys/dev/oce/oce_sysctl.c user/ed/newcons/sys/dev/oce/oce_util.c user/ed/newcons/sys/dev/ofw/ofw_bus.h user/ed/newcons/sys/dev/ofw/ofw_bus_if.m user/ed/newcons/sys/dev/ofw/ofw_bus_subr.c user/ed/newcons/sys/dev/ofw/ofw_console.c user/ed/newcons/sys/dev/ofw/ofw_fdt.c user/ed/newcons/sys/dev/ofw/ofw_iicbus.c user/ed/newcons/sys/dev/ofw/openfirm.c user/ed/newcons/sys/dev/pci/pci.c user/ed/newcons/sys/dev/pci/pci_private.h user/ed/newcons/sys/dev/pci/pcireg.h user/ed/newcons/sys/dev/pci/pcivar.h user/ed/newcons/sys/dev/spibus/spibus.c user/ed/newcons/sys/dev/spibus/spibusvar.h user/ed/newcons/sys/dev/uart/uart_dev_imx.c user/ed/newcons/sys/fs/ext2fs/ext2_vnops.c user/ed/newcons/sys/kern/subr_devstat.c user/ed/newcons/sys/mips/include/pte.h user/ed/newcons/sys/modules/dtrace/Makefile user/ed/newcons/sys/modules/dtrace/dtraceall/dtraceall.c user/ed/newcons/sys/net/if_tap.c user/ed/newcons/sys/net80211/ieee80211_output.c user/ed/newcons/sys/net80211/ieee80211_proto.c user/ed/newcons/sys/net80211/ieee80211_proto.h user/ed/newcons/sys/netinet6/icmp6.c user/ed/newcons/sys/powerpc/booke/platform_bare.c user/ed/newcons/sys/powerpc/include/intr_machdep.h user/ed/newcons/sys/powerpc/mpc85xx/atpic.c user/ed/newcons/sys/powerpc/ofw/ofw_pci.c user/ed/newcons/sys/powerpc/ofw/ofw_pcib_pci.c user/ed/newcons/sys/powerpc/ofw/ofw_pcibus.c user/ed/newcons/sys/powerpc/ofw/openpic_ofw.c user/ed/newcons/sys/powerpc/powermac/powermac_thermal.c user/ed/newcons/sys/powerpc/powerpc/intr_machdep.c user/ed/newcons/sys/powerpc/powerpc/nexus.c user/ed/newcons/sys/powerpc/powerpc/pic_if.m user/ed/newcons/sys/powerpc/pseries/vdevice.c user/ed/newcons/sys/sparc64/include/bus.h user/ed/newcons/sys/sparc64/include/bus_private.h user/ed/newcons/sys/sparc64/pci/fire.c user/ed/newcons/sys/sparc64/pci/psycho.c user/ed/newcons/sys/sparc64/pci/schizo.c user/ed/newcons/sys/sparc64/sbus/sbus.c user/ed/newcons/sys/sparc64/sparc64/bus_machdep.c user/ed/newcons/sys/sys/time.h user/ed/newcons/sys/ufs/ffs/ffs_vnops.c user/ed/newcons/sys/ufs/ufs/dinode.h user/ed/newcons/sys/x86/x86/io_apic.c user/ed/newcons/usr.sbin/bhyve/bhyverun.c user/ed/newcons/usr.sbin/bhyve/ioapic.c user/ed/newcons/usr.sbin/bhyve/pci_virtio_block.c user/ed/newcons/usr.sbin/bhyveload/bhyveload.c user/ed/newcons/usr.sbin/freebsd-update/freebsd-update.sh user/ed/newcons/usr.sbin/pkg/config.c user/ed/newcons/usr.sbin/pkg/config.h user/ed/newcons/usr.sbin/pkg/dns_utils.c user/ed/newcons/usr.sbin/pkg/dns_utils.h user/ed/newcons/usr.sbin/pkg/pkg.c Directory Properties: user/ed/newcons/ (props changed) user/ed/newcons/cddl/ (props changed) user/ed/newcons/cddl/contrib/opensolaris/ (props changed) user/ed/newcons/cddl/contrib/opensolaris/cmd/zfs/ (props changed) user/ed/newcons/sbin/ (props changed) user/ed/newcons/sys/ (props changed) user/ed/newcons/sys/boot/ (props changed) user/ed/newcons/sys/conf/ (props changed) user/ed/newcons/usr.sbin/bhyve/ (props changed) user/ed/newcons/usr.sbin/bhyveload/ (props changed) Modified: user/ed/newcons/Makefile.inc1 ============================================================================== --- user/ed/newcons/Makefile.inc1 Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/Makefile.inc1 Fri Oct 25 08:41:36 2013 (r257108) @@ -58,6 +58,7 @@ # use that new version. And the new (dynamically-linked) /bin/sh # will expect to find appropriate libraries in /lib and /libexec. # +SRCDIR?= ${.CURDIR} .if defined(SUBDIR_OVERRIDE) SUBDIR= ${SUBDIR_OVERRIDE} .else @@ -84,6 +85,9 @@ SUBDIR+=secure SUBDIR+=share .endif SUBDIR+=sys usr.bin usr.sbin +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif .if ${MK_OFED} != "no" SUBDIR+=contrib/ofed .endif @@ -128,10 +132,10 @@ OSRELDATE= 0 .endif .if !defined(VERSION) -REVISION!= make -C ${.CURDIR}/release -V REVISION -BRANCH!= make -C ${.CURDIR}/release -V BRANCH +REVISION!= make -C ${SRCDIR}/release -V REVISION +BRANCH!= make -C ${SRCDIR}/release -V BRANCH SRCRELDATE!= awk '/^\#define[[:space:]]*__FreeBSD_version/ { print $$3 }' \ - ${.CURDIR}/sys/sys/param.h + ${SRCDIR}/sys/sys/param.h VERSION= FreeBSD ${REVISION}-${BRANCH} ${TARGET_ARCH} ${SRCRELDATE} .endif @@ -488,6 +492,10 @@ _worldtmp: mtree -deU -f ${.CURDIR}/etc/mtree/BSD.debug.dist \ -p ${WORLDTMP}/usr/lib >/dev/null .endif +.if ${MK_TESTS} != "no" + mtree -deU -f ${.CURDIR}/etc/mtree/BSD.tests.dist \ + -p ${WORLDTMP}${TESTSBASE} >/dev/null +.endif .for _mtree in ${LOCAL_MTREE} mtree -deU -f ${.CURDIR}/${_mtree} -p ${WORLDTMP} > /dev/null .endfor Modified: user/ed/newcons/ObsoleteFiles.inc ============================================================================== --- user/ed/newcons/ObsoleteFiles.inc Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/ObsoleteFiles.inc Fri Oct 25 08:41:36 2013 (r257108) @@ -38,6 +38,8 @@ # xargs -n1 | sort | uniq -d; # done +# 20131023: remove never used iscsi directory +OLD_DIRS+=usr/share/examples/iscsi # 20131014: libbsdyml becomes private OLD_FILES+=usr/lib/libbsdyml.a OLD_FILES+=usr/lib/libbsdyml.so @@ -2491,6 +2493,7 @@ OLD_FILES+=usr/sbin/zfs OLD_FILES+=usr/sbin/zpool # 20070423: rc.bluetooth (examples) removed OLD_FILES+=usr/share/examples/netgraph/bluetooth/rc.bluetooth +OLD_DIRS+=usr/share/examples/netgraph/bluetooth # 20070421: worm.4 removed OLD_FILES+=usr/share/man/man4/worm.4.gz # 20070417: trunk(4) renamed to lagg(4) Modified: user/ed/newcons/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- user/ed/newcons/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Fri Oct 25 08:41:36 2013 (r257108) @@ -25,10 +25,11 @@ .\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved. .\" Copyright (c) 2013 Nexenta Systems, Inc. All Rights Reserved. .\" Copyright (c) 2013, Joyent, Inc. All rights reserved. +.\" Copyright (c) 2013, Steven Hartland <smh@FreeBSD.org> .\" .\" $FreeBSD$ .\" -.Dd September 20, 2013 +.Dd October 23, 2013 .Dt ZFS 8 .Os .Sh NAME @@ -61,7 +62,7 @@ .Op , Ns ... .Sm on .Nm -.Cm snapshot +.Cm snapshot Ns | Ns Cm snap .Op Fl r .Oo Fl o Ar property Ns = Ns Ar value Oc Ns ... .Ar filesystem@snapname Ns | Ns Ar volume@snapname @@ -157,7 +158,7 @@ .Op Fl o Ar property Ns Oo , Ns Ar property Oc Ns ... .Fl a | Ar filesystem .Nm -.Cm unmount +.Cm unmount Ns | Ns Cm umount .Op Fl f .Fl a | Ar filesystem Ns | Ns Ar mountpoint .Nm @@ -172,11 +173,11 @@ .Op Fl i Ar snapshot | Fl I Ar snapshot .Ar snapshot .Nm -.Cm receive +.Cm receive Ns | Ns Cm recv .Op Fl vnFu .Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot .Nm -.Cm receive +.Cm receive Ns | Ns Cm recv .Op Fl vnFu .Op Fl d | e .Ar filesystem @@ -1653,7 +1654,7 @@ options, as they can destroy large porti behavior for mounted file systems in use. .It Xo .Nm -.Cm snapshot +.Cm snapshot Ns | Ns Cm snap .Op Fl r .Oo Fl o Ar property Ns = Ns Ar value Oc Ns ... .Ar filesystem@snapname Ns | Ns volume@snapname @@ -1865,7 +1866,7 @@ syntax. A comma-separated list of types to display, where .Ar type is one of -.Sy filesystem , snapshot , volume , No or Sy all . +.Sy filesystem , snapshot , snap, volume , No or Sy all . For example, specifying .Fl t Cm snapshot displays only snapshots. @@ -2194,7 +2195,7 @@ Mount the specified filesystem. .El .It Xo .Nm -.Cm unmount +.Cm unmount Ns | Ns Cm umount .Op Fl f .Fl a | Ar filesystem Ns | Ns Ar mountpoint .Xc @@ -2377,13 +2378,13 @@ on future versions of .Tn ZFS . .It Xo .Nm -.Cm receive +.Cm receive Ns | Ns Cm recv .Op Fl vnFu .Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot .Xc .It Xo .Nm -.Cm receive +.Cm receive Ns | Ns Cm recv .Op Fl vnFu .Op Fl d | e .Ar filesystem Modified: user/ed/newcons/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- user/ed/newcons/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Fri Oct 25 08:41:36 2013 (r257108) @@ -259,9 +259,9 @@ get_usage(zfs_help_t idx) case HELP_PROMOTE: return (gettext("\tpromote <clone-filesystem>\n")); case HELP_RECEIVE: - return (gettext("\treceive [-vnFu] <filesystem|volume|" + return (gettext("\treceive|recv [-vnFu] <filesystem|volume|" "snapshot>\n" - "\treceive [-vnFu] [-d | -e] <filesystem>\n")); + "\treceive|recv [-vnFu] [-d | -e] <filesystem>\n")); case HELP_RENAME: return (gettext("\trename [-f] <filesystem|volume|snapshot> " "<filesystem|volume|snapshot>\n" @@ -280,10 +280,10 @@ get_usage(zfs_help_t idx) case HELP_SHARE: return (gettext("\tshare <-a | filesystem>\n")); case HELP_SNAPSHOT: - return (gettext("\tsnapshot [-r] [-o property=value] ... " + return (gettext("\tsnapshot|snap [-r] [-o property=value] ... " "<filesystem@snapname|volume@snapname> ...\n")); case HELP_UNMOUNT: - return (gettext("\tunmount [-f] " + return (gettext("\tunmount|umount [-f] " "<-a | filesystem|mountpoint>\n")); case HELP_UNSHARE: return (gettext("\tunshare " @@ -3027,7 +3027,7 @@ zfs_do_list(int argc, char **argv) flags &= ~ZFS_ITER_PROP_LISTSNAPS; while (*optarg != '\0') { static char *type_subopts[] = { "filesystem", - "volume", "snapshot", "all", NULL }; + "volume", "snapshot", "snap", "all", NULL }; switch (getsubopt(&optarg, type_subopts, &value)) { @@ -3038,9 +3038,10 @@ zfs_do_list(int argc, char **argv) types |= ZFS_TYPE_VOLUME; break; case 2: + case 3: types |= ZFS_TYPE_SNAPSHOT; break; - case 3: + case 4: types = ZFS_TYPE_DATASET; break; @@ -6726,6 +6727,12 @@ main(int argc, char **argv) cmdname = "receive"; /* + * The 'snap' command is an alias for 'snapshot' + */ + if (strcmp(cmdname, "snap") == 0) + cmdname = "snapshot"; + + /* * Special case '-?' */ if (strcmp(cmdname, "-?") == 0) Modified: user/ed/newcons/contrib/gperf/src/search.cc ============================================================================== --- user/ed/newcons/contrib/gperf/src/search.cc Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/contrib/gperf/src/search.cc Fri Oct 25 08:41:36 2013 (r257108) @@ -36,7 +36,10 @@ /* ============================== Portability ============================== */ /* Assume ISO C++ 'for' scoping rule. */ -#define for if (0) ; else for +/* This code is used to work around scoping issues with visual studio 6 from + * 1998. Comment it out here to queisce numerous -Wdangling-else warnings + * from clang. +#define for if (0) ; else for */ /* Dynamically allocated array with dynamic extent: Modified: user/ed/newcons/etc/Makefile ============================================================================== --- user/ed/newcons/etc/Makefile Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/etc/Makefile Fri Oct 25 08:41:36 2013 (r257108) @@ -139,6 +139,9 @@ BIN1+= regdomain.xml BIN2= netstart pccard_ether rc.suspend rc.resume MTREE= BSD.include.dist BSD.root.dist BSD.usr.dist BSD.var.dist +.if ${MK_TESTS} != "no" +MTREE+= BSD.tests.dist +.endif .if ${MK_SENDMAIL} != "no" MTREE+= BSD.sendmail.dist .endif @@ -314,6 +317,9 @@ MTREES+= mtree/BSD.debug.dist /usr/lib .if ${MK_GROFF} != "no" MTREES+= mtree/BSD.groff.dist /usr .endif +.if ${MK_TESTS} != "no" +MTREES+= mtree/BSD.tests.dist ${TESTSBASE} +.endif .if ${MK_SENDMAIL} != "no" MTREES+= mtree/BSD.sendmail.dist / .endif Copied: user/ed/newcons/etc/mtree/BSD.tests.dist (from r257107, head/etc/mtree/BSD.tests.dist) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/ed/newcons/etc/mtree/BSD.tests.dist Fri Oct 25 08:41:36 2013 (r257108, copy of r257107, head/etc/mtree/BSD.tests.dist) @@ -0,0 +1,12 @@ +# $FreeBSD$ +# +# Please see the file src/etc/mtree/README before making changes to this file. +# + +/set type=dir uname=root gname=wheel mode=0755 +. + lib + libcrypt + .. + .. +.. Modified: user/ed/newcons/etc/mtree/BSD.usr.dist ============================================================================== --- user/ed/newcons/etc/mtree/BSD.usr.dist Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/etc/mtree/BSD.usr.dist Fri Oct 25 08:41:36 2013 (r257108) @@ -325,8 +325,6 @@ .. ipfw .. - iscsi - .. jails .. kld @@ -360,8 +358,6 @@ mdoc .. netgraph - bluetooth - .. .. pc-sysinstall .. Modified: user/ed/newcons/lib/libcrypt/Makefile ============================================================================== --- user/ed/newcons/lib/libcrypt/Makefile Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/lib/libcrypt/Makefile Fri Oct 25 08:41:36 2013 (r257108) @@ -37,4 +37,9 @@ WARNS?= 2 PRECIOUSLIB= +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + .include <bsd.lib.mk> +.include <bsd.subdir.mk> Modified: user/ed/newcons/lib/libcrypt/tests/Makefile ============================================================================== --- user/ed/newcons/lib/libcrypt/tests/Makefile Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/lib/libcrypt/tests/Makefile Fri Oct 25 08:41:36 2013 (r257108) @@ -2,6 +2,8 @@ # exercise libcrypt +TESTSDIR= ${TESTSBASE}/lib/libcrypt + ATF_TESTS_C= crypt_tests CFLAGS+= -I${.CURDIR:H} Modified: user/ed/newcons/sbin/fsck_ffs/ea.c ============================================================================== --- user/ed/newcons/sbin/fsck_ffs/ea.c Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/sbin/fsck_ffs/ea.c Fri Oct 25 08:41:36 2013 (r257108) @@ -65,7 +65,7 @@ eascan(struct inodesc *idesc, struct ufs char dbuf[DIRBLKSIZ]; printf("Inode %ju extsize %ju\n", - (intmax_t)idesc->id_number, (intmax_t)dp->di_extsize); + (intmax_t)idesc->id_number, (uintmax_t)dp->di_extsize); if (dp->di_extsize == 0) return 0; if (dp->di_extsize <= sblock.fs_fsize) Modified: user/ed/newcons/sbin/geom/class/part/geom_part.c ============================================================================== --- user/ed/newcons/sbin/geom/class/part/geom_part.c Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/sbin/geom/class/part/geom_part.c Fri Oct 25 08:41:36 2013 (r257108) @@ -364,7 +364,11 @@ gpart_autofill_resize(struct gctl_req *r } offset = (pp->lg_stripeoffset / pp->lg_sectorsize) % alignment; - last = (off_t)strtoimax(find_geomcfg(gp, "last"), NULL, 0); + s = find_geomcfg(gp, "last"); + if (s == NULL) + errx(EXIT_FAILURE, "Final block not found for geom %s", + gp->lg_name); + last = (off_t)strtoimax(s, NULL, 0); LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { s = find_provcfg(pp, "index"); if (s == NULL) @@ -502,8 +506,16 @@ gpart_autofill(struct gctl_req *req) if (size > alignment) size = ALIGNDOWN(size, alignment); - first = (off_t)strtoimax(find_geomcfg(gp, "first"), NULL, 0); - last = (off_t)strtoimax(find_geomcfg(gp, "last"), NULL, 0); + s = find_geomcfg(gp, "first"); + if (s == NULL) + errx(EXIT_FAILURE, "Starting block not found for geom %s", + gp->lg_name); + first = (off_t)strtoimax(s, NULL, 0); + s = find_geomcfg(gp, "last"); + if (s == NULL) + errx(EXIT_FAILURE, "Final block not found for geom %s", + gp->lg_name); + last = (off_t)strtoimax(s, NULL, 0); grade = ~0ULL; a_first = ALIGNUP(first + offset, alignment); last = ALIGNDOWN(last + offset, alignment); @@ -587,12 +599,22 @@ gpart_show_geom(struct ggeom *gp, const int idx, wblocks, wname, wmax; scheme = find_geomcfg(gp, "scheme"); + if (scheme == NULL) + errx(EXIT_FAILURE, "Scheme not found for geom %s", gp->lg_name); s = find_geomcfg(gp, "first"); + if (s == NULL) + errx(EXIT_FAILURE, "Starting block not found for geom %s", + gp->lg_name); first = (off_t)strtoimax(s, NULL, 0); s = find_geomcfg(gp, "last"); + if (s == NULL) + errx(EXIT_FAILURE, "Final block not found for geom %s", + gp->lg_name); last = (off_t)strtoimax(s, NULL, 0); wblocks = strlen(s); s = find_geomcfg(gp, "state"); + if (s == NULL) + errx(EXIT_FAILURE, "State not found for geom %s", gp->lg_name); if (s != NULL && *s != 'C') s = NULL; wmax = strlen(gp->lg_name); @@ -748,6 +770,8 @@ gpart_backup(struct gctl_req *req, unsig abort(); pp = LIST_FIRST(&gp->lg_consumer)->lg_provider; s = find_geomcfg(gp, "last"); + if (s == NULL) + abort(); wblocks = strlen(s); wtype = 0; LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { @@ -757,6 +781,8 @@ gpart_backup(struct gctl_req *req, unsig wtype = i; } s = find_geomcfg(gp, "entries"); + if (s == NULL) + abort(); windex = strlen(s); printf("%s %s\n", scheme, s); LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { @@ -1177,6 +1203,8 @@ gpart_bootcode(struct gctl_req *req, uns if (gp == NULL) errx(EXIT_FAILURE, "No such geom: %s.", s); s = find_geomcfg(gp, "scheme"); + if (s == NULL) + errx(EXIT_FAILURE, "Scheme not found for geom %s", gp->lg_name); vtoc8 = 0; if (strcmp(s, "VTOC8") == 0) vtoc8 = 1; Modified: user/ed/newcons/sbin/growfs/debug.c ============================================================================== --- user/ed/newcons/sbin/growfs/debug.c Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/sbin/growfs/debug.c Fri Oct 25 08:41:36 2013 (r257108) @@ -765,7 +765,7 @@ dbg_dump_ufs2_ino(struct fs *sb, const c fprintf(dbg_log, "gen int32_t 0x%08x\n", ino->di_gen); fprintf(dbg_log, "kernflags u_int32_t 0x%08x\n", ino->di_kernflags); fprintf(dbg_log, "flags u_int32_t 0x%08x\n", ino->di_flags); - fprintf(dbg_log, "extsize int32_t 0x%08x\n", ino->di_extsize); + fprintf(dbg_log, "extsize u_int32_t 0x%08x\n", ino->di_extsize); /* XXX: What do we do with di_extb[NXADDR]? */ Modified: user/ed/newcons/sbin/mdconfig/mdconfig.c ============================================================================== --- user/ed/newcons/sbin/mdconfig/mdconfig.c Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/sbin/mdconfig/mdconfig.c Fri Oct 25 08:41:36 2013 (r257108) @@ -481,12 +481,18 @@ md_list(const char *units, int opt, cons printf("\n"); /* XXX: Check if it's enough to clean everything. */ geom_stats_snapshot_free(sq); - if (((opt & OPT_UNIT) && (fflag == NULL) && ufound) || - ((opt & OPT_UNIT) == 0 && (fflag != NULL) && ffound) || - ((opt & OPT_UNIT) && (fflag != NULL) && ufound && ffound)) - return (0); - else - return (-1); + if (opt & OPT_UNIT) { + if (((fflag == NULL) && ufound) || + ((fflag == NULL) && (units != NULL) && ufound) || + ((fflag != NULL) && ffound) || + ((fflag != NULL) && (units != NULL) && ufound && ffound)) + return (0); + } else if (opt & OPT_LIST) { + if ((fflag == NULL) || + ((fflag != NULL) && ffound)) + return (0); + } + return (-1); } /* Modified: user/ed/newcons/share/man/man5/src.conf.5 ============================================================================== --- user/ed/newcons/share/man/man5/src.conf.5 Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/share/man/man5/src.conf.5 Fri Oct 25 08:41:36 2013 (r257108) @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" from FreeBSD: head/tools/build/options/makeman 255964 2013-10-01 07:22:04Z des .\" $FreeBSD$ -.Dd October 6, 2013 +.Dd October 24, 2013 .Dt SRC.CONF 5 .Os .Sh NAME @@ -208,10 +208,6 @@ When set, it also enforces the following .Va WITHOUT_CLANG_EXTRAS .It .Va WITHOUT_CLANG_FULL -.It -.Va WITHOUT_CLANG_IS_CC -.It -.Va WITHOUT_LLDB .El .It Va WITH_CLANG .\" from FreeBSD: head/tools/build/options/WITH_CLANG 221730 2011-05-10 11:14:40Z ru @@ -323,11 +319,7 @@ When set, it also enforces the following .It .Va WITHOUT_CLANG_FULL .It -.Va WITHOUT_CLANG_IS_CC -.It .Va WITHOUT_GROFF -.It -.Va WITHOUT_LLDB .El .It Va WITH_DEBUG_FILES .\" from FreeBSD: head/tools/build/options/WITH_DEBUG_FILES 251512 2013-06-07 21:40:02Z emaste @@ -910,7 +902,7 @@ This includes .Xr rsh 1 , etc. .It Va WITHOUT_RCS -.\" from FreeBSD: head/tools/build/options/WITHOUT_RCS 156932 2006-03-21 07:50:50Z ru +.\" from FreeBSD: head/tools/build/options/WITHOUT_RCS 256198 2013-10-09 17:07:20Z gjb Set to not build .Xr rcs 1 and related utilities. @@ -1030,13 +1022,9 @@ When set, it also enforces the following .It .Va WITHOUT_CLANG_FULL .It -.Va WITHOUT_CLANG_IS_CC -.It .Va WITHOUT_GCC .It .Va WITHOUT_GDB -.It -.Va WITHOUT_LLDB .El .It Va WITHOUT_UNBOUND .\" from FreeBSD: head/tools/build/options/WITHOUT_UNBOUND 255597 2013-09-15 14:51:23Z des Modified: user/ed/newcons/share/man/man7/Makefile ============================================================================== --- user/ed/newcons/share/man/man7/Makefile Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/share/man/man7/Makefile Fri Oct 25 08:41:36 2013 (r257108) @@ -29,6 +29,10 @@ MAN= adding_user.7 \ sticky.7 \ tuning.7 +.if ${MK_TESTS} != "no" +MAN+= tests.7 +.endif + MLINKS= intro.7 miscellaneous.7 MLINKS+= security.7 securelevel.7 MLINKS+= c99.7 c.7 Modified: user/ed/newcons/share/man/man7/hier.7 ============================================================================== --- user/ed/newcons/share/man/man7/hier.7 Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/share/man/man7/hier.7 Fri Oct 25 08:41:36 2013 (r257108) @@ -32,7 +32,7 @@ .\" @(#)hier.7 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd January 21, 2010 +.Dd October 19, 2013 .Dt HIER 7 .Os .Sh NAME @@ -692,6 +692,12 @@ source code for files in source code for files in .Pa /usr/sbin .El +.Pp +.It Pa tests/ +The +.Fx +test suite. +See tests(7) for more details. .El .It Pa /var/ multi-purpose log, temporary, transient, and spool files Copied: user/ed/newcons/share/man/man7/tests.7 (from r257107, head/share/man/man7/tests.7) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/ed/newcons/share/man/man7/tests.7 Fri Oct 25 08:41:36 2013 (r257108, copy of r257107, head/share/man/man7/tests.7) @@ -0,0 +1,199 @@ +.\" $FreeBSD$ +.\" $NetBSD: tests.kyua.7,v 1.2 2013/07/20 21:39:59 wiz Exp $ +.\" +.\" Copyright (c) 2010 The NetBSD Foundation, 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 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. +.\" +.Dd October 19, 2013 +.Dt TESTS 7 +.Os +.Sh NAME +.Nm tests +.Nd introduction to the FreeBSD test suite +.Sh DESCRIPTION +The +.Fx +test suite provides a collection of automated tests for two major purposes. +On the one hand, the test suite aids +.Em developers +in catching bugs and regressions in the code when they performing modifications +to the source tree. +On the other hand, the test suite allows +.Em end users +(and, in particular, system administrators) to verify that fresh installations +of the +.Fx +operating system behave correctly in their hardware platform and also to ensure +that the system does not suffer from regressions during regular system +operation and maintenance. +.Pp +The +.Fx +test suite is installed under the +.Pa /usr/tests +hierarchy. +.Pp +This manual page describes how to execute the test suite and how to configure +some of its optional features. +.Ss When to run the tests? +Before diving into the details of how to run the test suite, here are some +scenarios in which you should be running them: +.Bl -bullet -offset indent +.It +After a fresh installation of +.Fx +to ensure that the system works correctly on your hardware platform. +.It +After an upgrade of +.Fx +to a different version to ensure that the new code works well on your +hardware platform and that the upgrade did not introduce regressions in your +configuration. +.It +After performing changes to the source tree to catch any bugs and/or regressions +introduced by the modifications. +.It +Periodically, maybe from a +.Xr cron 8 +job, to ensure that any changes to the system (such as the installation of +third-party packages or manual modifications to configuration files) do not +introduce unexpected failures. +.El +.Ss Running the tests +First of all, you will need to install the +.Sq ports/devel/kyua +package. +.Pp +Use the following command to run the whole test suite: +.Bd -literal -offset indent +$ kyua test -k /usr/tests/Kyuafile +.Ed +.Pp +The above will go through all test programs in +.Pa /usr/tests +recursively, execute them, store their results and debugging data in Kyua +database (by default in +.Pa ~/.kyua/store.db ) , +and print a summary of the results. +This summary includes a brief count of all total tests run and how many of +them failed. +.Pp +It is possible to restrict which tests to run by providing their names in +the command line. +For example, this would execute the tests for the +.Xr cp 1 +and +.Xr cut 1 +utilities: +.Bd -literal -offset indent +$ kyua test -k /usr/tests/Kyuafile bin/cp usr.bin/cut +.Ed +.Ss Obtaining reports of the tests execution +Additional information of the results of the execution can be later extracted +from the database by using the various reporting commands of Kyua. +For example, the following would extract a plain-text report of the executed +tests and show which ones failed: +.Bd -literal -offset indent +$ kyua report +.Ed +.Pp +This other example would generate an HTML report ready to be published on a +web server: +.Bd -literal -offset indent +$ kyua report-html --output ~/public_html/tests +.Ed +.Pp +For further details on the command-line interface of Kyua, please refer +to its manual page +.Xr kyua 1 . +.\".Ss Configuring the tests +.\"Some test cases in the +.\".Fx +.\"test suite require the administrator to manually set up some configuration +.\"properties before they can run. +.\"Unless these properties are defined, the tests that require them will be marked +.\"as skipped and thus they will not be really executed. +.\".Pp +.\"Test suites are configured by defining the values to their configuration +.\"variables in +.\".Pa /usr/local/etc/kyua/kyua.conf . +.\"The format of this file is detailed in +.\".Xr kyua.conf 5 . +.\".Pp +.\"The following configuration variables are available in the +.\".Fx +.\"test suite: +.\".Bl -tag +.\".It NONE REGISTERED YET +.\"TBD. +.Ss What to do if something fails? +If there is +.Em any failure +during the execution of the test suite, please considering reporting it to the +.Fx +developers so that the failure can be analyzed and fixed. +To do so, either send a message to the appropriate mailing list or file a +problem report. +For more details please refer to: +.Bl -bullet -offset indent -compact +.It +.Lk http://lists.freebsd.org/ "FreeBSD Mailing Lists" +.It +.Lk http://www.freebsd.org/send-pr.html "Submit a FreeBSD Problem Report" +.El +.Sh FILES +.Bl -tag -compact -width usrXlocalXetcXkyuaXkyuaXconfXX +.It Pa /usr/local/etc/kyua/kyua.conf +System-wide configuration file for +.Xr kyua 1 . +.It Pa ~/.kyua/kyua.conf +User-specific configuration file for +.Xr kyua 1 ; +overrides the system file. +.It Pa ~/.kyua/store.db +Default database used by Kyua to maintain the data of the executed tests. +.It Pa /usr/tests/ +Location of the +.Fx +test suite. +.It Pa /usr/tests/Kyuafile +Top-level test suite definition file. +.El +.Sh SEE ALSO +.Xr kyua 1 . +.Sh HISTORY +The collection of test programs in +.Pa /usr/tests +first appeared in +.Fx 11.0 . +.Pp +The +.Nm +manual page first appeared in +.Nx 6.0 +and was later ported to +.Fx 11.0 . +.Sh AUTHORS +.An Julio Merino Aq Mt jmmv@google.com Modified: user/ed/newcons/share/mk/bsd.files.mk ============================================================================== --- user/ed/newcons/share/mk/bsd.files.mk Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/share/mk/bsd.files.mk Fri Oct 25 08:41:36 2013 (r257108) @@ -14,9 +14,9 @@ buildfiles: ${${group}} all: buildfiles -.if !target(installfiles) .for group in ${FILESGROUPS} .if defined(${group}) && !empty(${group}) +installfiles: installfiles-${group} ${group}OWN?= ${SHAREOWN} ${group}GRP?= ${SHAREGRP} @@ -37,7 +37,7 @@ ${group}NAME_${file:T}?= ${${group}NAME} .else ${group}NAME_${file:T}?= ${file:T} .endif -installfiles: _${group}INS_${file:T} +installfiles-${group}: _${group}INS_${file:T} _${group}INS_${file:T}: ${file} ${INSTALL} -o ${${group}OWN_${.ALLSRC:T}} \ -g ${${group}GRP_${.ALLSRC:T}} -m ${${group}MODE_${.ALLSRC:T}} \ @@ -48,7 +48,7 @@ _${group}FILES+= ${file} .endif .endfor .if !empty(_${group}FILES) -installfiles: _${group}INS +installfiles-${group}: _${group}INS _${group}INS: ${_${group}FILES} .if defined(${group}NAME) ${INSTALL} -o ${${group}OWN} -g ${${group}GRP} \ @@ -63,7 +63,5 @@ _${group}INS: ${_${group}FILES} .endif # defined(${group}) && !empty(${group}) .endfor -.endif # !target(installfiles) - realinstall: installfiles .ORDER: beforeinstall installfiles Modified: user/ed/newcons/share/mk/bsd.own.mk ============================================================================== --- user/ed/newcons/share/mk/bsd.own.mk Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/share/mk/bsd.own.mk Fri Oct 25 08:41:36 2013 (r257108) @@ -377,6 +377,7 @@ __DEFAULT_NO_OPTIONS = \ PKGTOOLS \ SHARED_TOOLCHAIN \ SVN \ + TESTS \ USB_GADGET_EXAMPLES # @@ -664,4 +665,8 @@ $xGRP= ${_gid} .endif # !_WITHOUT_SRCCONF +# Pointer to the top directory into which tests are installed. Should not be +# overriden by Makefiles, but the user may choose to set this in src.conf(5). +TESTSBASE?= /usr/tests + .endif # !target(__<bsd.own.mk>__) Modified: user/ed/newcons/share/mk/bsd.test.mk ============================================================================== --- user/ed/newcons/share/mk/bsd.test.mk Fri Oct 25 06:48:57 2013 (r257107) +++ user/ed/newcons/share/mk/bsd.test.mk Fri Oct 25 08:41:36 2013 (r257108) @@ -12,10 +12,6 @@ .include <bsd.init.mk> -# Pointer to the top directory into which tests are installed. Should not be -# overriden by Makefiles, but the user may choose to set this in src.conf(5). -TESTSBASE?= /usr/tests - # Directory in which to install tests defined by the current Makefile. # Makefiles have to override this to point to a subdirectory of TESTSBASE. TESTSDIR?= . Copied: user/ed/newcons/share/mk/plain.test.mk (from r257107, head/share/mk/plain.test.mk) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/ed/newcons/share/mk/plain.test.mk Fri Oct 25 08:41:36 2013 (r257108, copy of r257107, head/share/mk/plain.test.mk) @@ -0,0 +1,51 @@ +# $FreeBSD$ +# +# Logic to build and install plain test programs. A plain test programs it not +# supposed to use any specific testing framework: all it does is run some code +# and report the test's pass or fail status via a 0 or 1 exit code. + +.include <bsd.init.mk> + +# List of C, C++ and shell test programs to build. +# +# Programs listed here are built according to the semantics of bsd.prog.mk for +# PROGS, PROGS_CXX and SCRIPTS, respectively. +# +# Test programs registered in this manner are set to be installed into TESTSDIR +# (which should be overriden by the Makefile) and are not required to provide a +# manpage. +PLAIN_TESTS_C?= +PLAIN_TESTS_CXX?= +PLAIN_TESTS_SH?= + +.if !empty(PLAIN_TESTS_C) +PROGS+= ${PLAIN_TESTS_C} +_TESTS+= ${PLAIN_TESTS_C} +.for _T in ${PLAIN_TESTS_C} +BINDIR.${_T}= ${TESTSDIR} +MAN.${_T}?= # empty +TEST_INTERFACE.${_T}= plain +.endfor +.endif + +.if !empty(PLAIN_TESTS_CXX) +PROGS_CXX+= ${PLAIN_TESTS_CXX} +PROGS+= ${PLAIN_TESTS_CXX} +_TESTS+= ${PLAIN_TESTS_CXX} +.for _T in ${PLAIN_TESTS_CXX} +BINDIR.${_T}= ${TESTSDIR} +MAN.${_T}?= # empty +TEST_INTERFACE.${_T}= plain +.endfor +.endif + +.if !empty(PLAIN_TESTS_SH) +SCRIPTS+= ${PLAIN_TESTS_SH} +_TESTS+= ${PLAIN_TESTS_SH} +.for _T in ${PLAIN_TESTS_SH} +SCRIPTSDIR_${_T}= ${TESTSDIR} +TEST_INTERFACE.${_T}= plain +.endfor +.endif + +.include <bsd.test.mk> Copied: user/ed/newcons/sys/arm/broadcom/bcm2835/bcm2835_spi.c (from r257107, head/sys/arm/broadcom/bcm2835/bcm2835_spi.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/ed/newcons/sys/arm/broadcom/bcm2835/bcm2835_spi.c Fri Oct 25 08:41:36 2013 (r257108, copy of r257107, head/sys/arm/broadcom/bcm2835/bcm2835_spi.c) @@ -0,0 +1,521 @@ +/*- + * Copyright (c) 2012 Oleksandr Tymoshenko <gonzo@freebsd.org> + * Copyright (c) 2013 Luiz Otavio O Souza <loos@freebsd.org> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/param.h> +#include <sys/systm.h> +#include <sys/bus.h> + +#include <sys/kernel.h> +#include <sys/module.h> +#include <sys/rman.h> +#include <sys/lock.h> +#include <sys/mutex.h> +#include <sys/sysctl.h> + +#include <machine/bus.h> +#include <machine/cpu.h> +#include <machine/cpufunc.h> +#include <machine/resource.h> +#include <machine/fdt.h> +#include <machine/frame.h> +#include <machine/intr.h> + +#include <dev/fdt/fdt_common.h> +#include <dev/ofw/ofw_bus.h> +#include <dev/ofw/ofw_bus_subr.h> + +#include <dev/spibus/spi.h> +#include <dev/spibus/spibusvar.h> + +#include <arm/broadcom/bcm2835/bcm2835_gpio.h> +#include <arm/broadcom/bcm2835/bcm2835_spireg.h> +#include <arm/broadcom/bcm2835/bcm2835_spivar.h> + +#include "spibus_if.h" + +static void bcm_spi_intr(void *); + +#ifdef BCM_SPI_DEBUG +static void +bcm_spi_printr(device_t dev) +{ + struct bcm_spi_softc *sc; + uint32_t reg; + + sc = device_get_softc(dev); + reg = BCM_SPI_READ(sc, SPI_CS); + device_printf(dev, "CS=%b\n", reg, + "\20\1CS0\2CS1\3CPHA\4CPOL\7CSPOL" + "\10TA\11DMAEN\12INTD\13INTR\14ADCS\15REN\16LEN" + "\21DONE\22RXD\23TXD\24RXR\25RXF\26CSPOL0\27CSPOL1" + "\30CSPOL2\31DMA_LEN\32LEN_LONG"); + reg = BCM_SPI_READ(sc, SPI_CLK) & SPI_CLK_MASK; + if (reg % 2) + reg--; + if (reg == 0) + reg = 65536; + device_printf(dev, "CLK=%uMhz/%d=%luhz\n", + SPI_CORE_CLK / 1000000, reg, SPI_CORE_CLK / reg); + reg = BCM_SPI_READ(sc, SPI_DLEN) & SPI_DLEN_MASK; + device_printf(dev, "DLEN=%d\n", reg); + reg = BCM_SPI_READ(sc, SPI_LTOH) & SPI_LTOH_MASK; + device_printf(dev, "LTOH=%d\n", reg); + reg = BCM_SPI_READ(sc, SPI_DC); + device_printf(dev, "DC=RPANIC=%#x RDREQ=%#x TPANIC=%#x TDREQ=%#x\n", + (reg & SPI_DC_RPANIC_MASK) >> SPI_DC_RPANIC_SHIFT, + (reg & SPI_DC_RDREQ_MASK) >> SPI_DC_RDREQ_SHIFT, + (reg & SPI_DC_TPANIC_MASK) >> SPI_DC_TPANIC_SHIFT, + (reg & SPI_DC_TDREQ_MASK) >> SPI_DC_TDREQ_SHIFT); +} +#endif + +static void +bcm_spi_modifyreg(struct bcm_spi_softc *sc, uint32_t off, uint32_t mask, + uint32_t value) +{ + uint32_t reg; + + mtx_assert(&sc->sc_mtx, MA_OWNED); + reg = BCM_SPI_READ(sc, off); + reg &= ~mask; + reg |= value; + BCM_SPI_WRITE(sc, off, reg); +} + +static int +bcm_spi_clock_proc(SYSCTL_HANDLER_ARGS) +{ + struct bcm_spi_softc *sc; + uint32_t clk; + int error; + + sc = (struct bcm_spi_softc *)arg1; + + BCM_SPI_LOCK(sc); + clk = BCM_SPI_READ(sc, SPI_CLK); + BCM_SPI_UNLOCK(sc); + clk &= 0xffff; + if (clk == 0) + clk = 65536; + clk = SPI_CORE_CLK / clk; + + error = sysctl_handle_int(oidp, &clk, sizeof(clk), req); + if (error != 0 || req->newptr == NULL) + return (error); + + clk = SPI_CORE_CLK / clk; + if (clk <= 1) *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310250841.r9P8fbrK075298>