svn commit: r190919 - in head/sys: amd64/amd64 amd64/include i386/i386 i386/include

Bruce Evans brde at optusnet.com.au
Tue Apr 14 10:41:33 UTC 2009


On Mon, 13 Apr 2009, John Baldwin wrote:

> On Saturday 11 April 2009 10:01:01 am Ed Schouten wrote:
>> Log:
>>   Simplify in/out functions (for i386 and AMD64).
>>
>>   Remove a hack to generate more efficient code for port numbers below
>>   0x100, which has been obsolete for at least ten years, because GCC has
>>   an asm constraint to specify that.
>>
>>   Submitted by:	Christoph Mallon <christoph mallon gmx de>
>
> Hmm, it appears that you broke the DDB usage:
>
> db> call inb(0x20)
>
> Since the functions are now called 'inb_' and 'outb_'.

I pointed this out in an early review, sigh.

> Perhaps the inline
> routines should be _inb() and _outb() and inb and outb should still be macros
> that wrap them that then get undefined in machdep.c for the functions used in
> DDB?

That would be ugly.  We use better methods in atomic.h to un-inline
_all_ the functions in atomic.h without changing their names, and _all_
the functions in cpufunc.h should be un-inlined too.  However, in*()
and out*() are useful enough to deserve full ddb support as commands.
As commands, they can have the same names as the inline functions with
no problems.  I don't want cpufunc.h to be messed up with special
macros to support just 2 functions.  (atomic.h has some preprocessor
messes to support atomic.c, but it at least does this generally.)

Bruce


More information about the svn-src-all mailing list