logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

OF_device_from_xref, OF_xref_from_device, OF_device_register_xref — manage mappings between xrefs and

Authors

       This manual page was written by Oleksandr Tymoshenko <gonzo@FreeBSD.org>.

Debian                                            April 9, 2018                           OF_DEVICE_FROM_XREF(9)

Description

       When a device tree node references another  node,  the  driver  may  need  to  get  a  device_t  instance
       associated  with  the referenced node.  For instance, an Ethernet driver accessing a PHY device.  To make
       this possible, the kernel maintains a table that maps effective handles to device_t instances.

       OF_device_register_xref() adds a map entry from the effective phandle xref to device dev.  If  a  mapping
       entry for xref already exists, it is replaced with the new one.  The function always returns 0.

       OF_device_from_xref() returns a device_t instance associated with the effective phandle xref.  If no such
       mapping exists, the function returns NULL.

       OF_xref_from_device()  returns  the effective phandle associated with the device dev.  If no such mapping
       exists, the function returns 0.

Examples

           static int
           acmephy_attach(device_t dev)
           {
               phandle_t node;

               /* PHY node is referenced from eth device, register it */
               node = ofw_bus_get_node(dev);
               OF_device_register_xref(OF_xref_from_node(node), dev);

               return (0);
           }

Name

       OF_device_from_xref,  OF_xref_from_device,  OF_device_register_xref  —  manage mappings between xrefs and
       devices

See Also

OF_node_to_xref(9)

Synopsis

#include<dev/ofw/ofw_bus.h>#include<dev/ofw/ofw_bus_subr.h>intOF_device_register_xref(phandle_txref, device_tdev);

       device_tOF_device_from_xref(phandle_txref);

       phandle_tOF_xref_from_device(device_tdev);

See Also