struct kmod_list *kmod_list_remove(struct kmod_list *list);
struct kmod_list *kmod_list_remove_data(struct kmod_list *list,
const void *data) __must_check;
+struct kmod_list *kmod_list_remove_n_latest(struct kmod_list *list,
+ unsigned int n) __must_check;
+/* libkmod.c */
const char *kmod_get_dirname(struct kmod_ctx *ctx) __attribute__((nonnull(1)));
+int kmod_lookup_alias_from_config(struct kmod_ctx *ctx, const char *name, struct kmod_list **list);
+int kmod_lookup_alias_from_symbols_file(struct kmod_ctx *ctx, const char *name, struct kmod_list **list);
+int kmod_lookup_alias_from_aliases_file(struct kmod_ctx *ctx, const char *name, struct kmod_list **list);
+int kmod_lookup_alias_from_moddep_file(struct kmod_ctx *ctx, const char *name, struct kmod_list **list);
+/* libkmod-config.c */
struct kmod_config {
struct kmod_list *aliases;
struct kmod_list *blacklists;
int kmod_parse_config_file(struct kmod_ctx *ctx, const char *filename, struct kmod_config *config);
int kmod_parse_config(struct kmod_ctx *ctx, struct kmod_config *config);
void kmod_free_config(struct kmod_ctx *ctx, struct kmod_config *config);
+const char *kmod_alias_get_name(const struct kmod_list *l);
+const char *kmod_alias_get_modname(const struct kmod_list *l);
+/* util functions */
char *getline_wrapped(FILE *fp, unsigned int *linenum);
char *underscores(struct kmod_ctx *ctx, char *s);
#define streq(a, b) (strcmp((a), (b)) == 0)
+bool startswith(const char *s, const char *prefix);
#endif