summaryrefslogtreecommitdiff
path: root/modprobe.c
diff options
context:
space:
mode:
Diffstat (limited to 'modprobe.c')
-rw-r--r--modprobe.c121
1 files changed, 0 insertions, 121 deletions
diff --git a/modprobe.c b/modprobe.c
deleted file mode 100644
index 05b40c5..0000000
--- a/modprobe.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * really dumb modprobe implementation for busybox
- * Copyright (C) 2001 Lineo, davidm@lineo.com
- */
-
-#include <stdio.h>
-#include <getopt.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <syslog.h>
-#include <string.h>
-#include "busybox.h"
-
-static char cmd[128];
-
-extern int modprobe_main(int argc, char** argv)
-{
- int ch, rc = 0;
- int loadall = 0, showconfig = 0, debug = 0, autoclean = 0, list = 0;
- int show_only = 0, quiet = 0, remove_opt = 0, do_syslog = 0, verbose = 0;
- char *load_type = NULL, *config = NULL;
-
- while ((ch = getopt(argc, argv, "acdklnqrst:vVC:")) != -1)
- switch(ch) {
- case 'a':
- loadall++;
- break;
- case 'c':
- showconfig++;
- break;
- case 'd':
- debug++;
- break;
- case 'k':
- autoclean++;
- break;
- case 'l':
- list++;
- break;
- case 'n':
- show_only++;
- break;
- case 'q':
- quiet++;
- break;
- case 'r':
- remove_opt++;
- break;
- case 's':
- do_syslog++;
- break;
- case 't':
- load_type = optarg;
- break;
- case 'v':
- verbose++;
- break;
- case 'C':
- config = optarg;
- break;
- case 'V':
- default:
- show_usage();
- break;
- }
-
- if (load_type || config) {
- fprintf(stderr, "-t and -C not supported\n");
- exit(EXIT_FAILURE);
- }
-
- if (showconfig)
- exit(EXIT_SUCCESS);
-
- if (list)
- exit(EXIT_SUCCESS);
-
- if (remove_opt) {
- do {
- sprintf(cmd, "rmmod %s %s %s",
- optind >= argc ? "-a" : "",
- do_syslog ? "-s" : "",
- optind < argc ? argv[optind] : "");
- if (do_syslog)
- syslog(LOG_INFO, "%s", cmd);
- if (show_only || verbose)
- printf("%s\n", cmd);
- if (!show_only)
- rc = system(cmd);
- } while (++optind < argc);
- exit(EXIT_SUCCESS);
- }
-
- if (optind >= argc) {
- fprintf(stderr, "No module or pattern provided\n");
- exit(EXIT_FAILURE);
- }
-
- sprintf(cmd, "insmod %s %s %s",
- do_syslog ? "-s" : "",
- quiet ? "-q" : "",
- autoclean ? "-k" : "");
- while (optind < argc) {
- strcat(cmd, argv[optind]);
- strcat(cmd, " ");
- optind++;
- }
- if (do_syslog)
- syslog(LOG_INFO, "%s", cmd);
- if (show_only || verbose)
- printf("%s\n", cmd);
- if (!show_only)
- rc = system(cmd);
- else
- rc = 0;
-
- exit(rc ? EXIT_FAILURE : EXIT_SUCCESS);
-}
-
-