lkml.org 
[lkml]   [2004]   [Dec]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch] [RFC] make WANT_PAGE_VIRTUAL a config option
Hi,

On Fri, 17 Dec 2004, Dave Hansen wrote:

> > > No. But, I do think that most of the very basic VM structures do, as it
> > > stands. That's limited to struct page, zone, and pgdat as I see it
> > > now.
> >
> > Why do you want to put these into separate headers?
>
> It enables you do do static inlines accessing struct page members
> anywhere you want, such as in asm/mmzone.h, like in my example.

And by that you add more header dependencies.
We have basically this situation:

foo.h (struct foo; inline foo();) <-> bar.h (struct bar; inline bar();)

Almost every time we had such recursive dependencies, we simply rip one
element out and put it into a separate header:

foo.h (inline foo();)
-> bar.h (struct bar; inline bar();)
-> foo_struct.h (struct foo;)

Repeat this often enough and we end up with millions of small header
files. Instead we can reorder everything a little and can do this:

foo.h (inline foo(); inline bar();)
-> foo_types.h (struct foo; struct bar;)

In your case don't put the inline functions into asm/mmzone.h and we
should merge the various definition into fewer header files.

> > > The dependencies aren't very twisted at all. In fact, I don't think any
> > > of those are deeper than two. More importantly, I never have to cope
> > > with 'struct page;' keeping me from doing arithmetic.
> >
> > You may be surprised. :)
> > Play around with "mkdir test; echo 'obj-y = test.o' > test/Makefile; echo
> > '#include <linux/foo.h>' > test/test.c; make test/test.i
> > CFLAGS_test.o=--trace-includes".
>
> I'm not sure what you're getting at.
>
> make: *** No rule to make target `test/test.i'. Stop.

Sorry, I forgot to mention that you have to do this inside a kernel tree.

bye, Roman
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:08    [from the cache]
©2003-2011 Jasper Spaans