Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Mar 2004 11:15:42 -0800 (PST)
From:      wpaul@FreeBSD.ORG (Bill Paul)
To:        nate@root.org (Nate Lawson)
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/amd64/isa atpic.c src/sys/contrib/dev/oltr if_oltr.c src/sys/dev/aac aac_pci.c src/sys/dev/acpic
Message-ID:  <20040322191542.CD8DE16A4CF@hub.freebsd.org>
In-Reply-To: <20040322102119.P33645@root.org> from Nate Lawson at "Mar 22, 2004 10:27:48 am"

next in thread | previous in thread | raw e-mail | index | archive | help
> > By doing this, you have fixed it to people can't use the NDISulator
> > code on 5.2-RELEASE or 5.2.1-RELEASE. I think it is hardly worth it
> > to break source code compatibility in this case just to avoid having
> > to type a few extra arguments. At the very least, bus_alloc_resource_any()
> > could have been implemented as a macro: then I could just test for its
> > existence and #define it myself so the code would run on older systems.
> > I'm very susprised that bde never raised this point.
> 
> Bill, I can understand that you're upset.

I am less upset than I am horribly confused.

> The reason why we made this
> change now is that API compatibility needs to be fixed before 5.3R.  I
> MFCd the function itself to 4-STABLE, but it won't go into 5.2 or 5.2.1
> due to the fact that only security changes are allowed there.

I think you're missing the point. There are people with 5.2.1 CD kits --
not just downloaded ISO images but actual physical CDs -- that don't have
this API. You can't go out and change the contents of these CDs. I
want to make it as painless as possible for people to just grab the
existing NDISulator code and drop it into a 5.2.1 system, because the
less trouble it is for them, the less trouble they make for me.

> Perhaps I should do a version bump?  Then you can add have source
> compatibility with 5.2*.  In any case, I would appreciate it if you'd go
> back to the convenience function before 5.3R branches so that 5.3R and
> 5-stable will have the new api.

Ok, just a minute. Do you want to:

a) _Supplement_ bus_alloc_resource() with bus_alloc_resource_any()

Or:

b) _Replace_ bus_alloc_resource() with bus_alloc_resource_any()

Please be clear. Calling bus_alloc_resource_any() a "convenience function"
implies that it's an addition to the API, which does not preclude me
from using the older API routines if I really, really want to.

> The reason for this change, BTW, is to unify a function for people who
> just want whatever resource is at a given RID.  Some drivers were
> specifying different values even though they wanted the default.

This is the entire bus_alloc_resource_any() function:

static __inline struct resource *
bus_alloc_resource_any(device_t dev, int type, int *rid, u_int flags)
{
        return (bus_alloc_resource(dev, type, rid, 0ul, ~0ul, 1, flags));
}

Please to be explaining why this isn't a macro:

#define bus_alloc_resource_any(dev, type, rid, flags)	\
	bus_alloc_resource(dev, type, rid, 0ul, ~0ul, 1, flags)

-Bill

--
=============================================================================
-Bill Paul            (510) 749-2329 | Senior Engineer, Master of Unix-Fu
                 wpaul@windriver.com | Wind River Systems
=============================================================================
              <adamw> you're just BEGGING to face the moose
=============================================================================



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040322191542.CD8DE16A4CF>