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().
+* Add command for signing modules
+ - There is a script to sign modules in kernel tree, but we should be able to
+ sign modules by ourselves
-* 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.
+* Stop using NOFAIL() and fatal()
+
+* Protect index against OOM
-* create test-mock library to be LD_PRELOAD'ed before running the binaries
- so we're able to create unit tests
+* Implement actions in kmod tool like 'insert', 'remove', 'info', etc
-* Add functions to dump configuration. Create a list with the config items
- (blacklist, aliases, etc) or just dump to a fd?
+* testsuite:
+ - when fake delete_module() succeeds, remove its entry from /sys/module
+ - improve coverage (use --enable-coverage to check the current state)
-* Add functions to list all modules known by modules.dep
+* Stop using system() inside the library and use fork + exec instead
-* provide 1:1 compatibility with module-init-tools's modprobe
- - dump configuration
- - 'modprobe -r' should remove modules which usecount became 0 because of
- module's removal
+* 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().
-* Add kmod_validate(). It checks if all config files and indexes are still
- valid. We need to save the mtime of each config dir when starting up and when
- this function is called we stat the dir and compare the mtimes.
+* config: implement the config handling in shared/ and use it in both depmod
+and libkmod
-* review API, maybe unify all of these setters:
+* review API, maybe unify all of these getters:
- kmod_module_version_get_symbol()
- kmod_module_version_get_crc()
- kmod_module_symbol_get_symbol()
- kmod_module_symbols_free_list()
- kmod_module_dependency_symbols_free_list()
-* provide modules.archive, a cache file with all modules compressed
- and a fast access. It's like a tar.gz, but with each entry
- compressed as opposed to the whole tar compressed, easy to pick
- individual entries, that is, more like .gz.tar. As zlib compression
- does not store the uncompressed file size, this could provide
- it. The file format should be something like:
- MAGIC-ID
- DIRECTORY-ENTRY-SIZE
- DIRECTORY (hash-like format, points to file offset and size)
- ENTRIES (each is a compressed module)
- Helper binary to:
- kmod-archive list
- kmod-archive add path.ko
- kmod-archive rm path.ko
- kmod-archive get path.ko
- kmod-archive exists path.ko
+* libkmod API breaking changes:
+ - dedicated error value for all kmod_*_get_crc() functions. Currently there
+ is no way for callers to distinguish between a valid CRC=0 and the error
+ code 0.
-Known Bugs:
-===========
+* 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.
+ Another possibility is to drop the mmap implementation relying on VFS to have
+ the pages cached. This would simplify the interface exported by libkmod.
+ Measure performance before deciding.
+* depmod:
+ - join functions for text/binary outputs
+ - use new O_TMPFILE for tmp file creation
Things to be added/removed in kernel (check what is really needed):
===================================================================
* list of currently loaded modules
-
-* module's size should be available under /sys
+ - readdir() in /sys/modules: dir without a 'initstate' file means the
+ module is builtin.
* kill /proc/modules ?
+ - Unlikely, given other tools might depend on it