tech-kern archive

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

Re: GNU vs C99 extern inline

Iain Hibbert <> wrote:
> 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()
> {
>       sleepq_insert();
> }
> which can then be removed when compat_sa is retired.. ?

Yes, COMPAT_SA is going to be removed.  Adding compat_sa_sleepq_insert()
seems good, just also put it under #ifdef KERN_SA - it will be easier for
me to not miss it.

> 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

And atomic operation likely costs more than the functional call anyway.


Home | Main Index | Thread Index | Old Index