On Wed, Jul 27, 2011 at 06:10:17PM +0100, David Laight wrote: > On Wed, Jul 27, 2011 at 04:58:23PM +0000, Eduardo Horvath wrote: > > On Wed, 27 Jul 2011, David Young wrote: > > > > > There are a couple of changes to the API that I would like to make. > > > First, I don't think that vmem_addr_t 0 should be reserved for error > > > indications (0 == VMEM_ADDR_NULL), but the API should change from > > > this: > > > > I'd recommend returning -1 on error. 0 is a valid address, but while -1 > > is a valid address, when do you ever use this interface to allocate > > something that starts at address -1? And it gets around all the noxious > > problems involved in returning data through reference parameters. > > I tend to agree. > It is probably also worth avoiding allocating address 0 anyway. > What is it address 0 of? The physical address seen on the bus??
I am pretty sure that I found an ISA-bus driver that allocated address 0 when I tried to convert extent(9) uses to vmem(9) uses in the i386 kernel. I had to hack around it. Looking back at the patches, I don't think I got the hacks right! Remember that vmem(9) is supposed to be a general-purpose allocator. Surely, for some purposes, allocating the 0th or last vmem_addr_t is going to be desirable? Gradually I am making my mind up in favor of indicating errors out-of-band. :-/ Dave -- David Young OJC Technologies dyo...@ojctech.com Urbana, IL * (217) 344-0444 x24