diff options
Diffstat (limited to 'mdk-stage1/probe-modules.c')
| -rw-r--r-- | mdk-stage1/probe-modules.c | 69 | 
1 files changed, 69 insertions, 0 deletions
| diff --git a/mdk-stage1/probe-modules.c b/mdk-stage1/probe-modules.c new file mode 100644 index 000000000..86b383b5e --- /dev/null +++ b/mdk-stage1/probe-modules.c @@ -0,0 +1,69 @@ +/* + * Olivier Blin (blino) + * + * Copyright 2007-2004 Mandriva + * + * + * This software may be freely redistributed under the terms of the GNU + * public license. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include "log.h" +#include "modules.h" +#include "probing.h" +#include "frontend.h" +#include <stdlib.h> +#include <sys/stat.h> +#include <string.h> +#include "utils.h" + +void stg1_error_message(char *msg, ...) +{ +	va_list args; +	va_start(args, msg); +	verror_message(msg, args); +	va_end(args); +} +void fatal_error(char *msg) +{ +	log_message("FATAL ERROR IN MODULES LOADER: %s\n\nI can't recover from this.\nYou may reboot your system.\n", msg); +	exit(EXIT_FAILURE); +} + +int main(int argc, char **argv, char **env) +{ +	enum media_bus bus = BUS_ANY; +	char *module = NULL; +	char options[500] = ""; + +	if (argc > 1) { +		if (streq(argv[1], "--usb")) { +			bus = BUS_USB; +		} else if (!ptr_begins_static_str(argv[1], "--")) { +			int i; +			module = argv[1]; +			for (i = 2; i < argc; i++) { +				strcat(options, argv[i]); +				strcat(options, " "); +			} +		} +	} + +	open_log(); +	init_modules_insmoding(); + +	if (module) { +		my_modprobe(module, ANY_DRIVER_TYPE, options); +	} else { +		find_media(bus); +	} + +	close_log(); + +	return 0; +} | 
