tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: GNU vs C99 extern inline

On Tue, 19 Apr 2011, David Young wrote:

> > 2. kern/kern_sleepq.c:sleepq_insert()
> >
> >  The only place this is called aside from that file is compat_sa.c so its
> >  probably a gross invasion of the API.
> Probably a gross invasion.

considering what to do about this one, I thought to make it static inline
and provide the gross invasion as a compat_sa_sleepq_insert() function
(which effectively changes only the externally visible symbol), eg

static inline sleepq_insert()

/* do not use this function, it will be removed */
void compat_sa_sleepq_insert()

which can then be removed when compat_sa is retired.. ?

> > 3. arch/x86/x86/pmap.c:pmap_reference()
> >
> >  this is the only arch with pmap_reference() function marked inline in
> >  this way. If it is really performance critical then it could be defined
> >  in x86/include/pmap.h directly so that uvm also gains from it
> How about making it static inline in the header file?

cannot be static - pmap_reference is declared in a MI way (when not a
macro) in uvm/uvm_pmap.h, then defined in arch specific code. So, it can
be non-inline or a macro but static inline is difficult. Since
pmap_reference on x86 is now just an atomic_inc_uint I proposed (on
port-i386/port-amd64[1]) that it be #defined to that in x86/include/pmap.h



Home | Main Index | Thread Index | Old Index