libdevctl. etc/mtree/BSD.include.dist: Add the /usr/include/devctl directory to the base system. lib/Makefile: lib/libdevctl/Makefile: Build support for the new library. lib/libdevctl/consumer.cc: lib/libdevctl/consumer.h: cddl/sbin/zfsd/zfsd.cc: cddl/sbin/zfsd/zfsd.h: New class, DevCtl::Consumer, from functionality extracted from ZfsDaemon, which can connect to devd, parse an event stream, and invoke event handlers. lib/libdevctl/event.cc: lib/libdevctl/event.h: cddl/sbin/zfsd/dev_ctl_event.cc: cddl/sbin/zfsd/dev_ctl_event.h: Strip Zfsd specific event handling from Zfsd's event classes to create DevCtl::Event, DevCtl::DevfsEvent, and DevCtl::ZfsEvent. lib/libdevctl/event_buffer.cc: lib/libdevctl/event_buffer.h: cddl/sbin/zfsd/zfsd.cc: cddl/sbin/zfsd/zfsd.h: DevCtl::EventBuffer: buffer for incoming devctl stream used to parse/extract individual event strings. lib/libdevctl/event_factory.cc: lib/libdevctl/event_factory.h: cddl/sbin/zfsd/zfsd.cc: cddl/sbin/zfsd/zfsd.h: DevCtl::EventFactory: Method map for converting event strings to Devctl::Event objects. lib/libdevctl/exception.cc: lib/libdevctl/exception.h: cddl/sbin/zfsd/zfsd_exception.cc: cddl/sbin/zfsd/zfsd_exception.h: DevCtl::Exception and DevCtl::ParseException, the exceptions which are thrown by this library. lib/libdevctl/guid.cc: lib/libdevctl/guid.h: cddl/sbin/zfsd/guid.cc: cddl/sbin/zfsd/guid.h: DevCtl::Guid: Helper routines for dealing with 64bit GUIDs such as found in Zfs pools and vdevs. lib/libdevctl/reader.cc: lib/libdevctl/reader.h: cddl/sbin/zfsd/zfsd.cc: cddl/sbin/zfsd/zfsd.h: DevCtl::Reader class hierarchy. Used to direct a Consumer to an event stream (e.g. from devd or a local/saved file). cddl/sbin/zfsd/zfsd_event.cc: cddl/sbin/zfsd/zfsd_event.h: Zfsd specialization of DevCtl::Event types. cddl/sbin/zfsd/zfsd_exception.cc: cddl/sbin/zfsd/zfsd_exception.h: Zfsd specific exception types, now derived from DevCtl::Excpetion. cddl/sbin/zfsd/Makefile: cddl/sbin/zfsd/callout.cc: cddl/sbin/zfsd/callout.h: cddl/sbin/zfsd/case_file.cc: cddl/sbin/zfsd/case_file.h: cddl/sbin/zfsd/vdev.cc: cddl/sbin/zfsd/vdev.h: cddl/sbin/zfsd/vdev_iterator.cc: cddl/sbin/zfsd/vdev_iterator.h: cddl/sbin/zfsd/zfsd.cc: cddl/sbin/zfsd/zfsd.h: cddl/sbin/zfsd/zfsd_event.cc: cddl/sbin/zfsd/zfsd_event.h: cddl/sbin/zfsd/zfsd_exception.cc: cddl/sbin/zfsd/zfsd_exception.h: cddl/sbin/zfsd/zfsd_main.cc: cddl/sbin/zfsd/zpool_list.cc: cddl/sbin/zfsd/zpool_list.h: Miscelaneuous refactoring to support using libdevctl instead of local implementation. cddl/sbin/zfsd/Makefile: cddl/sbin/zfsd/Makefile.common: tools/regression/zfsd/Makefile: Export common build information for zfsd and its unit tests to a "Makefile.common". Submitted by: gibbs Approved by: ken (mentor) Sponsored by: Spectra Logic Corporation
$FreeBSD$ Note: If you modify these files, please keep hier(7) updated! These files are used to create empty file hierarchies for building the system into. Some notes about working with them are placed here to try and keep them in good working order. a) The files use 4 space indentation, and other than in the header comments, should not contain any tabs. An indentation of 4 is preferable to the standard indentation of 8 because the indentation of levels in these files can become quite deep causing the line to overflow 80 characters. This also matches with the files generated when using the mtree -c option, which was implemented that way for the same reason. b) Only directories should be listed here. c) The listing should be kept in filename sorted order. d) Sanity checking changes to these files can be done by following this procedure (the sed -e is ugly, but fixing mtree -c to not emit the trailing white space would be even uglier): mkdir /tmp/MTREE mtree -deU -f BSD.X.dist -p /tmp/MTREE mtree -cdin -k uname,gname,mode -p /tmp/MTREE | \ sed -e 's/ *$//' >BSD.X.new diff -u BSD.X.dist BSD.X.new rm -r /tmp/MTREE Note that you will get some differences about /set lines, and uname= gname= on certain directory areas, mainly man page sections. This is caused by mtree not having a look ahead mechanism for making better selections for these as it traverses the hierarchy. The BSD.X.new file should NOT be committed, as it will be missing the correct header, and important keywords like ``nochange''. Simply use the diff for a sanity check to make sure things are in the correct order and correctly indented. e) Further sanity checking of the system builds with DESTDIR=/someplace are more complicated, but can often catch missing entries in these files. I tend to run this more complete sanity check shortly after the target date for a new release is announced. If you want details on it bug me about it via email to rgrimes@FreeBSD.org.