adding if_dev member to struct ifnet
John Baldwin
jhb at FreeBSD.org
Tue Sep 30 11:23:06 PDT 2003
On 30-Sep-2003 Brooks Davis wrote:
> On Tue, Sep 30, 2003 at 01:14:39PM -0400, John Baldwin wrote:
>>
>> Fair enough. I think that Brooks planned to use a NULL device_t for
>> interfaces w/o a backing new-bus device. However, that means you
>> still need if_name for all the non-newbus devices, so this seems
>> somewhat pointless if if_name is the only reason. Another counterpoint
>> is that the new-bus namespace and the netif namespace aren't the same
>> anyway and that seemed to be the point of this linkage. The
>> dev_t <> softc <> device_t linkages aren't about unifying namespaces.
>
> The idea here is that virtually all uses of if_name/if_unit that aren't
> just there for the users benefit are actually references to the
> underlying driver not name of the interface. Currently they are the
> same (i.e. ifname is nearly always device_get_name(dev) or a bug prone
> manual version there of), but I would like to separate them so we can
> rename interfaces.
>
> Since device_t is as close to a repository of driver/instance
> information as we've got, I though using it would be a reasonable way
> to go. As a side benefit, most drivers have a copy of it in their softc
> already so you'd have a standard place to put it.
>
> I suppose a usable alternative would be to revive if_name and if_unit
> as something like if_drvname and if_drvunit.
Are these uses all within the driver itself? If so, then just giving
ifnet a void * that is private to the driver would allow ifnet devices
hung off of new-bus devices to cache their device_t w/o requiring the
rest of the kernel to know what that private variable is.
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
More information about the freebsd-net
mailing list