svn commit: r273784 - in head/sys: amd64/ia32 compat/freebsd32 i386/i386 kern net

Konstantin Belousov kostikbel at gmail.com
Wed Oct 29 16:58:46 UTC 2014


On Wed, Oct 29, 2014 at 12:00:49PM -0400, John Baldwin wrote:
> On Wednesday, October 29, 2014 11:52:30 am Konstantin Belousov wrote:
> > On Wed, Oct 29, 2014 at 06:26:42AM +1100, Bruce Evans wrote:
> > > I just noticed some more API design errors.  The pointer type for new
> > > APIs should be [qualifed] wordsize_t *, not [qualified] void *.  Using
> > > void * reduces type safety for almost no benefits.  The casuword()
> > > family already doesn't use void *.
> > casuword() has very limited use, it was invented for umtx, and used
> > only there.  That said, I tend to agree with somewhat implicit note
> > that base argument for fuword() and family should be vm_offset_t.
> 
> I think Bruce is suggesting 'volatile long *' or 'volatile int32_t *'
> rather than vm_offset_t.

In main text, yes.  But there was a small note, and I better like the
vm_offset_t thing than normal pointers to different address space.
In fact, something like Linux' __user annotation + vm_offset_t, which
would put it extremely explicit that the address cannot be used as
pointer at all.

But we do not have anything 'dimentional' which would allow to prevent
mixing __user and normal pointers.  Some day Intel may release CPUs
with SMAP.


More information about the svn-src-head mailing list