118c2aff7Sartem /* 218c2aff7Sartem * CDDL HEADER START 318c2aff7Sartem * 418c2aff7Sartem * The contents of this file are subject to the terms of the 518c2aff7Sartem * Common Development and Distribution License (the "License"). 618c2aff7Sartem * You may not use this file except in compliance with the License. 718c2aff7Sartem * 818c2aff7Sartem * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 918c2aff7Sartem * or http://www.opensolaris.org/os/licensing. 1018c2aff7Sartem * See the License for the specific language governing permissions 1118c2aff7Sartem * and limitations under the License. 1218c2aff7Sartem * 1318c2aff7Sartem * When distributing Covered Code, include this CDDL HEADER in each 1418c2aff7Sartem * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1518c2aff7Sartem * If applicable, add the following below this CDDL HEADER, with the 1618c2aff7Sartem * fields enclosed by brackets "[]" replaced with your own identifying 1718c2aff7Sartem * information: Portions Copyright [yyyy] [name of copyright owner] 1818c2aff7Sartem * 1918c2aff7Sartem * CDDL HEADER END 2018c2aff7Sartem */ 2118c2aff7Sartem /* 22*97ddcdceSArtem Kachitchkine * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 2318c2aff7Sartem * Use is subject to license terms. 2418c2aff7Sartem */ 2518c2aff7Sartem 2618c2aff7Sartem #include <stdio.h> 2718c2aff7Sartem #include <stdlib.h> 2818c2aff7Sartem #include <unistd.h> 2918c2aff7Sartem #include <fcntl.h> 3018c2aff7Sartem #include <string.h> 3118c2aff7Sartem #include <strings.h> 3218c2aff7Sartem #include <signal.h> 3318c2aff7Sartem #include <errno.h> 3418c2aff7Sartem #include <libintl.h> 3518c2aff7Sartem #include <sys/types.h> 3618c2aff7Sartem 3718c2aff7Sartem #include "vold.h" 3818c2aff7Sartem #include "rmm_common.h" 3918c2aff7Sartem 4018c2aff7Sartem char *progname = "volcheck"; 4118c2aff7Sartem 4218c2aff7Sartem static void 4318c2aff7Sartem usage() 4418c2aff7Sartem { 4518c2aff7Sartem fprintf(stderr, 4618c2aff7Sartem gettext("usage: %s [-t #secs -i #secs] [-v] [path | nickname]\n"), 4718c2aff7Sartem progname); 4818c2aff7Sartem fprintf(stderr, 4918c2aff7Sartem gettext("If path is not supplied all media is checked\n")); 5018c2aff7Sartem } 5118c2aff7Sartem 5218c2aff7Sartem int 5318c2aff7Sartem main(int argc, char **argv) 5418c2aff7Sartem { 5518c2aff7Sartem const char *opts = "itv"; 5618c2aff7Sartem int c; 5718c2aff7Sartem boolean_t opt_i = B_FALSE; 5818c2aff7Sartem boolean_t opt_t = B_FALSE; 5918c2aff7Sartem boolean_t opt_v = B_FALSE; 6018c2aff7Sartem LibHalContext *hal_ctx; 6118c2aff7Sartem DBusError error; 6218c2aff7Sartem rmm_error_t rmm_error; 6318c2aff7Sartem int ret = 0; 6418c2aff7Sartem 6518c2aff7Sartem vold_init(argc, argv); 6618c2aff7Sartem 6718c2aff7Sartem while ((c = getopt(argc, argv, opts)) != EOF) { 6818c2aff7Sartem switch (c) { 6918c2aff7Sartem case 'i': 7018c2aff7Sartem opt_i = B_TRUE; 7118c2aff7Sartem break; 7218c2aff7Sartem case 't': 7318c2aff7Sartem opt_t = B_TRUE; 7418c2aff7Sartem break; 7518c2aff7Sartem case 'v': 7618c2aff7Sartem opt_v = B_TRUE; 7718c2aff7Sartem break; 7818c2aff7Sartem default: 7918c2aff7Sartem usage(); 8018c2aff7Sartem return (1); 8118c2aff7Sartem } 8218c2aff7Sartem } 8318c2aff7Sartem 84*97ddcdceSArtem Kachitchkine if ((hal_ctx = rmm_hal_init(0, 0, 0, 0, &error, &rmm_error)) == NULL) { 8518c2aff7Sartem (void) fprintf(stderr, 8618c2aff7Sartem gettext("HAL initialization failed: %s\n"), 8718c2aff7Sartem rmm_strerror(&error, rmm_error)); 8818c2aff7Sartem rmm_dbus_error_free(&error); 8918c2aff7Sartem return (1); 9018c2aff7Sartem } 9118c2aff7Sartem 9218c2aff7Sartem if (optind == argc) { 9318c2aff7Sartem /* no name provided, check all */ 9418c2aff7Sartem ret = rmm_rescan(hal_ctx, NULL, B_FALSE); 9518c2aff7Sartem } else { 9618c2aff7Sartem for (; optind < argc; optind++) { 9718c2aff7Sartem if (rmm_rescan(hal_ctx, argv[optind], B_FALSE) != 0) { 9818c2aff7Sartem ret = 1; 9918c2aff7Sartem } 10018c2aff7Sartem } 10118c2aff7Sartem } 10218c2aff7Sartem 10318c2aff7Sartem rmm_hal_fini(hal_ctx); 10418c2aff7Sartem 10518c2aff7Sartem return (ret); 10618c2aff7Sartem } 107