From owner-svn-src-head@FreeBSD.ORG Thu Jan 26 16:55:23 2012 Return-Path: Delivered-To: svn-src-head@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DEEC5106564A; Thu, 26 Jan 2012 16:55:23 +0000 (UTC) (envelope-from ache@vniz.net) Received: from vniz.net (vniz.net [194.87.13.69]) by mx1.freebsd.org (Postfix) with ESMTP id 492228FC13; Thu, 26 Jan 2012 16:55:22 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by vniz.net (8.14.5/8.14.5) with ESMTP id q0QGtLOJ092677; Thu, 26 Jan 2012 20:55:21 +0400 (MSK) (envelope-from ache@vniz.net) Received: (from ache@localhost) by localhost (8.14.5/8.14.5/Submit) id q0QGtLwP092676; Thu, 26 Jan 2012 20:55:21 +0400 (MSK) (envelope-from ache) Date: Thu, 26 Jan 2012 20:55:21 +0400 From: Andrey Chernov To: John Baldwin Message-ID: <20120126165521.GA92622@vniz.net> Mail-Followup-To: Andrey Chernov , John Baldwin , Mark Murray , David Schultz , src-committers@FreeBSD.ORG, svn-src-all@FreeBSD.ORG, svn-src-head@FreeBSD.ORG References: <20120126143819.GA88677@vniz.net> <20120126155626.GA92229@vniz.net> <201201261132.38320.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201201261132.38320.jhb@freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@FreeBSD.ORG, David Schultz , src-committers@FreeBSD.ORG, Mark Murray , svn-src-all@FreeBSD.ORG Subject: Re: svn commit: r230230 - head/sys/dev/random X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jan 2012 16:55:24 -0000 On Thu, Jan 26, 2012 at 11:32:38AM -0500, John Baldwin wrote: > On Thursday, January 26, 2012 10:56:27 am Andrey Chernov wrote: > > > On Thu, Jan 26, 2012 at 08:39:07AM -0500, John Baldwin wrote: > > > > atomic_cmpset_int(&iniseed_state, ARC4_ENTER_NONE, > ARC4_ENTER_HAVE); > > > > break; > > > > Updated version (I hope, final): > > > > --- sys/libkern.h.old 2012-01-16 07:15:12.000000000 +0400 > > +++ sys/libkern.h 2012-01-26 19:38:06.000000000 +0400 > > @@ -72,6 +72,8 @@ static __inline quad_t qabs(quad_t a) { > > > > /* Prototypes for non-quad routines. */ > > struct malloc_type; > > +enum arc4_is { ARC4_ENTR_NONE, ARC4_ENTR_HAVE, ARC4_ENTR_DONE }; > > +extern volatile enum arc4_is arc4rand_iniseed_state; > > Atomics don't operate on enums. You'll need to make it an int and just use > #define's for the 3 states. Although current version with current kernel flags works, I forget it is implementation defined in general and not always equal to sizeof(int), f.e. with gcc --short-enums. I'll remade it with #defines, thanx again. > I think the rest of this is fine. > > -- > John Baldwin -- http://ache.vniz.net/