Module Name: src
Committed By: uebayasi
Date: Sat Nov 1 14:15:31 UTC 2014
Modified Files:
src/usr.bin/config: TODO
Log Message:
config(1): More TODO description.
To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/usr.bin/config/TODO
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/config/TODO
diff -u src/usr.bin/config/TODO:1.8 src/usr.bin/config/TODO:1.9
--- src/usr.bin/config/TODO:1.8 Sat Nov 1 08:13:11 2014
+++ src/usr.bin/config/TODO Sat Nov 1 14:15:31 2014
@@ -11,8 +11,27 @@ o Call module as module.
o Emit everything (ioconf.*, Makefile, ...) per-attribute.
+ config(9) related metadata (cfdriver, cfattach, cfdata, ...) should be
+ collected using linker. Create ELF sections like
+ .{rodata,data}.config.{cfdriver,cfattach,cfdata}. Provide reference
+ symbols (e.g. cfdriverinit[]) using linker script. Sort entries by name
+ to lookup entries by binary search in kernel.
+
o Generate modular(9) related information. Especially module dependency.
+ At this moment modular(9) modules hardcode dependency in *.c using the
+ MODULE() macro:
+
+ MODULE(MODULE_CLASS_DRIVER, hdaudio, "pci");
+
+ This information already exists in config(5) definitions (files.*).
+ Extend config(5) to be able to specify module's class.
+
+ Ideally these module metadata are kept somewhere in ELF headers, so that
+ loaders (e.g. boot(8)) can easily read. One idea is to abuse DYNAMIC
+ sections to record dependency, as shared library does. (Feasibility
+ unknown.)
+
o Rename "interface attribute" to "bus".
Instead of