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*d7c57852SGary Mills * Copyright 2017 Gary Mills
2397ddcdceSArtem Kachitchkine * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
2418c2aff7Sartem * Use is subject to license terms.
2518c2aff7Sartem */
2618c2aff7Sartem
2718c2aff7Sartem #include <stdio.h>
2818c2aff7Sartem #include <stdlib.h>
2918c2aff7Sartem #include <unistd.h>
3018c2aff7Sartem #include <fcntl.h>
3118c2aff7Sartem #include <string.h>
3218c2aff7Sartem #include <strings.h>
3318c2aff7Sartem #include <signal.h>
3418c2aff7Sartem #include <errno.h>
3518c2aff7Sartem #include <libintl.h>
3618c2aff7Sartem #include <sys/types.h>
3718c2aff7Sartem
3818c2aff7Sartem #include "vold.h"
3918c2aff7Sartem #include "rmm_common.h"
4018c2aff7Sartem
4118c2aff7Sartem char *progname = "volcheck";
4218c2aff7Sartem
4318c2aff7Sartem static void
usage()4418c2aff7Sartem usage()
4518c2aff7Sartem {
4618c2aff7Sartem fprintf(stderr,
4718c2aff7Sartem gettext("usage: %s [-t #secs -i #secs] [-v] [path | nickname]\n"),
4818c2aff7Sartem progname);
4918c2aff7Sartem fprintf(stderr,
5018c2aff7Sartem gettext("If path is not supplied all media is checked\n"));
5118c2aff7Sartem }
5218c2aff7Sartem
5318c2aff7Sartem int
main(int argc,char ** argv)5418c2aff7Sartem main(int argc, char **argv)
5518c2aff7Sartem {
5618c2aff7Sartem const char *opts = "itv";
5718c2aff7Sartem int c;
5818c2aff7Sartem LibHalContext *hal_ctx;
5918c2aff7Sartem DBusError error;
6018c2aff7Sartem rmm_error_t rmm_error;
6118c2aff7Sartem int ret = 0;
6218c2aff7Sartem
6318c2aff7Sartem vold_init(argc, argv);
6418c2aff7Sartem
6518c2aff7Sartem while ((c = getopt(argc, argv, opts)) != EOF) {
6618c2aff7Sartem switch (c) {
6718c2aff7Sartem case 'i':
6818c2aff7Sartem break;
6918c2aff7Sartem case 't':
7018c2aff7Sartem break;
7118c2aff7Sartem case 'v':
7218c2aff7Sartem break;
7318c2aff7Sartem default:
7418c2aff7Sartem usage();
7518c2aff7Sartem return (1);
7618c2aff7Sartem }
7718c2aff7Sartem }
7818c2aff7Sartem
7997ddcdceSArtem Kachitchkine if ((hal_ctx = rmm_hal_init(0, 0, 0, 0, &error, &rmm_error)) == NULL) {
8018c2aff7Sartem (void) fprintf(stderr,
8118c2aff7Sartem gettext("HAL initialization failed: %s\n"),
8218c2aff7Sartem rmm_strerror(&error, rmm_error));
8318c2aff7Sartem rmm_dbus_error_free(&error);
8418c2aff7Sartem return (1);
8518c2aff7Sartem }
8618c2aff7Sartem
8718c2aff7Sartem if (optind == argc) {
8818c2aff7Sartem /* no name provided, check all */
8918c2aff7Sartem ret = rmm_rescan(hal_ctx, NULL, B_FALSE);
9018c2aff7Sartem } else {
9118c2aff7Sartem for (; optind < argc; optind++) {
9218c2aff7Sartem if (rmm_rescan(hal_ctx, argv[optind], B_FALSE) != 0) {
9318c2aff7Sartem ret = 1;
9418c2aff7Sartem }
9518c2aff7Sartem }
9618c2aff7Sartem }
9718c2aff7Sartem
9818c2aff7Sartem rmm_hal_fini(hal_ctx);
9918c2aff7Sartem
10018c2aff7Sartem return (ret);
10118c2aff7Sartem }
102