source: MondoRescue/branches/3.3/mindi-busybox/modutils/insmod.c@ 3865

Last change on this file since 3865 was 3621, checked in by Bruno Cornec, 10 years ago

New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.

File size: 1.8 KB
Line 
1/* vi: set sw=4 ts=4: */
2/*
3 * Mini insmod implementation for busybox
4 *
5 * Copyright (C) 2008 Timo Teras <timo.teras@iki.fi>
6 *
7 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
8 */
9
10//applet:IF_INSMOD(APPLET(insmod, BB_DIR_SBIN, BB_SUID_DROP))
11
12#include "libbb.h"
13#include "modutils.h"
14
15/* 2.6 style insmod has no options and required filename
16 * (not module name - .ko can't be omitted) */
17
18//usage:#if !ENABLE_MODPROBE_SMALL
19//usage:#define insmod_trivial_usage
20//usage: IF_FEATURE_2_4_MODULES("[OPTIONS] MODULE ")
21//usage: IF_NOT_FEATURE_2_4_MODULES("FILE ")
22//usage: "[SYMBOL=VALUE]..."
23//usage:#define insmod_full_usage "\n\n"
24//usage: "Load kernel module"
25//usage: IF_FEATURE_2_4_MODULES( "\n"
26//usage: "\n -f Force module to load into the wrong kernel version"
27//usage: "\n -k Make module autoclean-able"
28//usage: "\n -v Verbose"
29//usage: "\n -q Quiet"
30//usage: "\n -L Lock: prevent simultaneous loads"
31//usage: IF_FEATURE_INSMOD_LOAD_MAP(
32//usage: "\n -m Output load map to stdout"
33//usage: )
34//usage: "\n -x Don't export externs"
35//usage: )
36//usage:#endif
37
38int insmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
39int insmod_main(int argc UNUSED_PARAM, char **argv)
40{
41 char *filename;
42 int rc;
43
44 /* Compat note:
45 * 2.6 style insmod has no options and required filename
46 * (not module name - .ko can't be omitted).
47 * 2.4 style insmod can take module name without .o
48 * and performs module search in default directories
49 * or in $MODPATH.
50 */
51
52 IF_FEATURE_2_4_MODULES(
53 getopt32(argv, INSMOD_OPTS INSMOD_ARGS);
54 argv += optind - 1;
55 );
56
57 filename = *++argv;
58 if (!filename)
59 bb_show_usage();
60
61 rc = bb_init_module(filename, parse_cmdline_module_options(argv, /*quote_spaces:*/ 0));
62 if (rc)
63 bb_error_msg("can't insert '%s': %s", filename, moderror(rc));
64
65 return rc;
66}
Note: See TracBrowser for help on using the repository browser.