GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
OF_DEVICE_FROM_XREF(9) FreeBSD Kernel Developer's Manual OF_DEVICE_FROM_XREF(9)

OF_device_from_xref, OF_xref_from_device, OF_device_register_xref
manage mappings between xrefs and devices

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

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.

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

OF_node_to_xref(9)

This manual page was written by Oleksandr Tymoshenko <gonzo@FreeBSD.org>.
April 9, 2018 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 9 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.