I just applied a patch that breaks up and removes vl.h My strategy (as discussed previously) is to split the contents along functional lines, and hardware split along bus/machine boundaries..
In order to avoid lots of little header files it makes fairly extensive use of opaque structure pointers. This allows e.g. network and display controllers to be prototyped in the same header without requiring all users to include net.h and console.h. It's not perfect, but I'm reasonably happy with how it ended up. There's some scope for splitting things up further, but I tended to err on the size of a few big includes. Paul