How to get a device_t

Bernd Walter ticso at cicely12.cicely.de
Wed Aug 6 17:58:23 PDT 2003


On Wed, Aug 06, 2003 at 06:37:10PM -0600, M. Warner Losh wrote:
> In message: <20030807001244.GF35859 at cicely12.cicely.de>
>             Bernd Walter <ticso at cicely12.cicely.de> writes:
> : On Wed, Aug 06, 2003 at 05:52:57PM -0600, M. Warner Losh wrote:
> : > In message: <20030806110013.GE32228 at cicely12.cicely.de>
> : >             Bernd Walter <ticso at cicely12.cicely.de> writes:
> : > : Back to the original question:
> : > : How do I get the device_t from nexus?
> : > 
> : > You don't.  You are assigned one.
> : > 
> : > : Is there a get_nexus() function somewhere?
> : > 
> : > No.  You don't need it.
> : > 
> : > Chances are you could create an identify routine that would attach the
> : > bus to.  The identify routine should be all you need.
> : 
> : The point is that this special CPU can only be identified by its
> : host bridge.
> : That's the place were the MMCR bus has to be attached to nexus, so
> : we need the handle within this function.
> 
> Then why not just hang the bus off the host bridge?  There's really no
> compelling reason to have it on the nexus.

The host bridge is not available yet at probing time of the host bridge.
What we have is the host bridges parent (nexus) in the calling function.
Either we hand out the parents device_t to nexus_pcib_is_host_bridge, or
we find it out later.
I thought it would be cleaner to not extend nexus_pcib_is_host_bridge
arguments for a specialised case.

-- 
B.Walter                   BWCT                http://www.bwct.de
ticso at bwct.de                                  info at bwct.de



More information about the freebsd-hackers mailing list