MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / ofw_device_rename

Function ofw_device_rename

components/drivers/core/platform_ofw.c:44–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42};
43
44static void ofw_device_rename(struct rt_device *dev)
45{
46 rt_uint32_t mask;
47 rt_uint64_t addr;
48 const char *dev_name = dev->parent.name;
49 struct rt_ofw_node *np = dev->ofw_node;
50
51#if RT_NAME_MAX > 0
52 if (dev_name[0] == '\0')
53 {
54 dev_name = RT_NULL;
55 }
56#endif
57
58 while (np->parent)
59 {
60 if (!rt_ofw_get_address(np, 0, &addr, RT_NULL))
61 {
62 const char *node_name = rt_fdt_node_name(np->full_name);
63 rt_size_t tag_len = strchrnul(node_name, '@') - node_name;
64
65 if (!rt_ofw_prop_read_u32(np, "mask", &mask))
66 {
67 rt_dm_dev_set_name(dev, dev_name ? "%lx.%x.%.*s:%s" : "%lx.%x.%.*s",
68 addr, __rt_ffs(mask) - 1, tag_len, node_name, dev_name);
69 }
70 else
71 {
72 rt_dm_dev_set_name(dev, dev_name ? "%lx.%.*s:%s" : "%lx.%.*s",
73 addr, tag_len, node_name, dev_name);
74 }
75
76 return;
77 }
78
79 rt_dm_dev_set_name(dev, dev_name ? "%s:%s" : "%s",
80 rt_fdt_node_name(np->full_name), dev_name);
81
82 np = np->parent;
83 }
84}
85
86static struct rt_platform_device *alloc_ofw_platform_device(struct rt_ofw_node *np)
87{

Callers 1

Calls 6

rt_ofw_get_addressFunction · 0.85
rt_fdt_node_nameFunction · 0.85
strchrnulFunction · 0.85
rt_ofw_prop_read_u32Function · 0.85
rt_dm_dev_set_nameFunction · 0.85
__rt_ffsFunction · 0.50

Tested by

no test coverage detected