return err;
}
-static int rmmod_do_module(struct kmod_module *mod, bool do_dependencies,
- bool ignore_builtin);
+#define RMMOD_FLAG_DO_DEPENDENCIES 0x1
+#define RMMOD_FLAG_IGNORE_BUILTIN 0x2
+static int rmmod_do_module(struct kmod_module *mod, int flags);
static int rmmod_do_deps_list(struct kmod_list *list, bool stop_on_errors)
{
kmod_list_foreach_reverse(l, list) {
struct kmod_module *m = kmod_module_get_module(l);
- int r = rmmod_do_module(m, false, true);
+ int r = rmmod_do_module(m, RMMOD_FLAG_IGNORE_BUILTIN);
kmod_module_unref(m);
if (r < 0 && stop_on_errors)
return 0;
}
-static int rmmod_do_module(struct kmod_module *mod, bool do_dependencies,
- bool ignore_builtin)
+static int rmmod_do_module(struct kmod_module *mod, int flags)
{
const char *modname = kmod_module_get_name(mod);
struct kmod_list *pre = NULL, *post = NULL;
}
goto error;
} else if (state == KMOD_MODULE_BUILTIN) {
- if (ignore_builtin) {
+ if (flags & RMMOD_FLAG_IGNORE_BUILTIN) {
err = 0;
} else {
LOG("Module %s is builtin.\n", modname);
rmmod_do_deps_list(post, false);
- if (do_dependencies && remove_dependencies) {
+ if ((flags & RMMOD_FLAG_DO_DEPENDENCIES) && remove_dependencies) {
struct kmod_list *deps = kmod_module_get_dependencies(mod);
err = rmmod_do_deps_list(deps, true);
kmod_list_foreach(l, list) {
struct kmod_module *mod = kmod_module_get_module(l);
- err = rmmod_do_module(mod, true, false);
+ err = rmmod_do_module(mod, RMMOD_FLAG_DO_DEPENDENCIES);
kmod_module_unref(mod);
if (err < 0)
break;