/*- * Copyright (c) 2012, 2013 Spectra Logic Corporation * 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, * without modification. * 2. Redistributions in binary form must reproduce at minimum a disclaimer * substantially similar to the "NO WARRANTY" disclaimer below * ("Disclaimer") and any redistribution must be conditioned upon * including a substantially similar Disclaimer requirement for further * binary redistribution. * * NO WARRANTY * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. * * Authors: Alan Somers (Spectra Logic Corporation) */ /** * \file zfsd_main.cc * * main function for the ZFS Daemon. Separated to facilitate testing. * */ #include <sys/cdefs.h> #include <cstdlib> #include <cstdio> #include <unistd.h> #include <list> #include <map> #include <string> #include <devdctl/guid.h> #include <devdctl/event.h> #include <devdctl/event_factory.h> #include <devdctl/exception.h> #include <devdctl/consumer.h> #include "vdev_iterator.h" #include "zfsd.h" /*=============================== Program Main ===============================*/ static void usage() { fprintf(stderr, "usage: %s [-d]\n", getprogname()); exit(1); } /** * Program entry point. */ int main(int argc, char **argv) { int ch; while ((ch = getopt(argc, argv, "d")) != -1) { switch (ch) { case 'd': g_debug++; break; default: usage(); } } ZfsDaemon::Run(); return (0); }