blob: 537e7e13752f48695b07ccceb4512ad5c7e8fcee [file] [log] [blame]
Lucas De Marchibf89f762011-12-01 18:23:47 -02001Features:
Lucas De Marchi5e690c52011-12-16 02:02:58 -02002=========
Lucas De Marchibf89f762011-12-01 18:23:47 -02003
Lucas De Marchie975fd32013-04-30 12:34:23 -03004* Add command for signing modules
5 - There is a script to sign modules in kernel tree, but we should be able to
6 sign modules by ourselves
7
8* Stop using NOFAIL() and fatal()
9
Lucas De Marchi681bf892013-04-23 21:21:00 -030010* Protect index against OOM
11
Lucas De Marchi46939ec2013-04-09 20:20:38 -030012* Implement actions in kmod tool like 'insert', 'remove', 'info', etc
13
Lucas De Marchi80e54cb2012-02-22 13:07:13 -020014* testsuite:
Lucas De Marchi80e54cb2012-02-22 13:07:13 -020015 - when fake delete_module() succeeds, remove its entry from /sys/module
Lucas De Marchi895aa132015-01-14 11:10:53 -020016 - improve coverage (use --enable-coverage to check the current state)
Lucas De Marchibf89f762011-12-01 18:23:47 -020017
Lucas De Marchi46939ec2013-04-09 20:20:38 -030018* Stop using system() inside the library and use fork + exec instead
19
20* config: configs that do not need to be matched by fnmatch() could be using a
21 vector instead of a list. This way we could search in it by calling
22 bsearch().
23
Lucas De Marchi895aa132015-01-14 11:10:53 -020024* config: implement the config handling in shared/ and use it in both depmod
25and libkmod
26
Lucas De Marchic8c956b2012-06-11 12:00:19 -030027* review API, maybe unify all of these getters:
Gustavo Sverzut Barbieri674f8592011-12-20 11:54:53 -020028 - kmod_module_version_get_symbol()
29 - kmod_module_version_get_crc()
30 - kmod_module_symbol_get_symbol()
31 - kmod_module_symbol_get_crc()
32 - kmod_module_dependency_symbol_get_symbol()
33 - kmod_module_dependency_symbol_get_crc()
34 - kmod_module_versions_free_list()
35 - kmod_module_symbols_free_list()
Lucas De Marchi8836ff22012-11-05 02:04:44 -020036 - kmod_module_dependency_symbols_free_list()
Gustavo Sverzut Barbieri674f8592011-12-20 11:54:53 -020037
Lucas De Marchi80e54cb2012-02-22 13:07:13 -020038* index: drop the "open(), seek(), read()" implementation and use another one
39 with mmap(). When lookup() is called and the file is not mmaped, mmap it.
Lucas De Marchi895aa132015-01-14 11:10:53 -020040 Another possibility is to drop the mmap implementation relying on VFS to have
41 the pages cached. This would simplify the interface exported by libkmod.
42 Measure performance before deciding.
Lucas De Marchi5e690c52011-12-16 02:02:58 -020043
Lucas De Marchi709a4652015-02-19 01:00:05 -020044* depmod:
45 - join functions for text/binary outputs
46 - use new O_TMPFILE for tmp file creation
Lucas De Marchi8447b862012-08-30 14:10:47 -030047
Lucas De Marchi3af535c2011-12-27 17:32:55 -020048Things to be added/removed in kernel (check what is really needed):
Lucas De Marchi5e690c52011-12-16 02:02:58 -020049===================================================================
50
51* list of currently loaded modules
Lucas De Marchi80e54cb2012-02-22 13:07:13 -020052 - readdir() in /sys/modules: dir without a 'initstate' file means the
53 module is builtin.
Lucas De Marchi5e690c52011-12-16 02:02:58 -020054
Lucas De Marchi5e690c52011-12-16 02:02:58 -020055* kill /proc/modules ?
Lucas De Marchi758428a2012-01-16 15:56:17 -020056 - Unlikely, given other tools might depend on it