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

Reply via email to