Module Name: src Committed By: uebayasi Date: Wed Aug 19 03:23:34 UTC 2015
Modified Files: src/usr.bin/config: TODO Log Message: + pseudo(dev) attach To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 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.16 src/usr.bin/config/TODO:1.17 --- src/usr.bin/config/TODO:1.16 Fri Apr 10 03:51:44 2015 +++ src/usr.bin/config/TODO Wed Aug 19 03:23:34 2015 @@ -285,3 +285,22 @@ o Namespace. module and its dependencies (selectattr()). In other words, an option is only safely converted to a module (define), only if it doesn't depend on anything. (One example is DDB.) + +o Convert pseudo(dev) attach functions to take (void) (== kernel ctors). + + The pseudo attach function was originally designed to take `int n' as + the number of instances of the pseudo device. Now most of pseudo + devices have been converted to be `cloneable', meaning that their + instances are dynamically allocated at run-time, because guessing how + much instances are needed for users at compile time is almost impossible. + Restricting such a pure software resource at compile time is senseless, + considering that the rest of the world is dynamic. + + If pseudo attach functions once become (void), config(1) no longer + has to generate iteration to call those functions, by making them part + of kernel constructors, that are a list of (void) functions. + + Some pseudo devices may have dependency/ordering problems, because + pseudo attach functions have no choice when to be called. This could + be solved by converting to kctors, where functions are called in order + by dependency.