Subject: Re: Locking primitives kernel only?
To: None <tech-smp@netbsd.org>
From: Jason R Thorpe <thorpej@zembu.com>
List: tech-smp
Date: 05/02/2000 11:50:34
On Tue, May 02, 2000 at 11:30:10AM -0700, Eduardo Horvath wrote:

 > I see that <machine/lock.h> is being installed in /usr/include.  Are the
 > locking primitives kernel only or also useable by userland?  I was
 > considering changing the locking primitive to a compare-and-swap that
 > uses curproc as the identifier.  It's a great aid in debugging locking
 > issues but obviously wouldn't work in userland.  And I wouldn't want to
 > use a SPARC V9 instruction in 32-bit binaries.

You could certainly use #ifdef _KERNEL to switch them.

However, using curproc as the identifier for a simplelock is incorrect,
as simplelocks are owned by CPUs, not by processes.  Processes own
sleep locks implemented by lockmgr().

-- 
        -- Jason R. Thorpe <thorpej@zembu.com>