Provided by: freebsd-manpages_12.2-2_all bug

NAME

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

SYNOPSIS

       #include <dev/ofw/ofw_bus.h>
       #include <dev/ofw/ofw_bus_subr.h>

       int
       OF_device_register_xref(phandle_t xref, device_t dev);

       device_t
       OF_device_from_xref(phandle_t xref);

       phandle_t
       OF_xref_from_device(device_t dev);

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);
           }

SEE ALSO

       OF_node_to_xref(9)

AUTHORS

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

Debian                                            April 9, 2018                           OF_DEVICE_FROM_XREF(9)