blob: 9b19ff1c27871eff9db73011eda7ca5c91081dc5 [file] [log] [blame]
Features:
* config: configs that do not need to be matched by fnmatch() could be using a
vector instead of a list. This way we could search in it by calling
bsearch().
* config: load on demand
* index: drop the "open(), seek(), read()" implementation and use another one
with mmap(). When lookup() is called and the file is not mmaped, mmap it.
* provide a kmod_preload_resources() so configs are parsed and files are mmaped
with MAP_POPULATE | MAP_LOCKED. Maybe it's a good idea to have a
kmod_unload_resources() too.
* kmod_module: create a mempool with live and recently de-allocated modules.
This way we don't have to create a new one, parse dependencies and whatnot.
Just pick the already created node.
* kmod_module: apply blacklist on module lookup. What's best? Return the whole
list and provide functions like kmod_module_filter_* or return the list
already filtered?
^-- investigate the best API
* insmod and rmmod with dependency handling. Maybe this should be done by the
binary, and it's sufficient to return only the lists from lookups.
^-- investigate the best API
* when preloading stuff, give the possibility to preload binary files. We need
to create alternative index_search* functions to operate on mmapped files.
Then on ctx creation we mmap all the files
* kmod_module: calculate fields on demand if not available:
- name
- path
- dependency