I was screwing around with changing some macros in pgtable-3level.h into static inlines and I quickly ran into some dependency problems. Mainly, pgtable-3level.h was included from pgtable.h before __pmd_offset() was defined, and I wanted to use __pmd_offset() in a function instead of a macro. Anyway I have some _really_ rough demonstration of what I would like to do in the attached patch. What I want to see is some more explicit definitions of what the dependencies are in the various header files. Is this anything that people would like to see expanded? I haven't even gotten close to moving all of the macros into the ops.h file, but you can probably get the idea. page.h | 26 ------------------------ pgtable-2level.h | 19 +++-------------- pgtable-3level.h | 53 +++++++++++++++++++---------------------- pgtable.h | 3 -- pgtable/const-2level.h | 17 +++++++++++++++ pgtable/const-3level.h | 25 +++++++++++++++++++++++ pgtable/const.h | 12 +++++++++++ pgtable/ops.h | 17 +++++++++++++++ pgtable/types-2level.h | 10 +++++++++ pgtable/types-3level.h | 10 +++++++++ pgtable/types.h | 12 +++++++++++ 13 files changed, 132 insertions(+), 72 deletions(-) -- Dave Hansen haveblue@us.ibm.com