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

Function dtb_node_get_address

components/legacy/fdt/src/dtb_addr.c:23–57  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21}
22
23const uint32_t *dtb_node_get_address(const struct dtb_node *dev, int index,
24 uint64_t *size, unsigned int *flags)
25{
26 const uint32_t *prop;
27 int psize;
28 struct dtb_node *parent;
29 int onesize, i, na, ns;
30
31 /* Get parent */
32 parent = dtb_node_get_parent(dev);
33 if (parent == NULL)
34 return NULL;
35
36 dtb_node_default_count_cells(dev, &na, &ns);
37 if (!FDT_CHECK_ADDR_COUNT(na))
38 return NULL;
39
40 /* Get "reg" or "assigned-addresses" property */
41 prop = dtb_node_get_dtb_node_property_value(dev, "reg", &psize);
42 if (prop == NULL)
43 return NULL;
44 psize /= 4;
45
46 onesize = na + ns;
47 for (i = 0; psize >= onesize; psize -= onesize, prop += onesize, i++)
48 if (i == index)
49 {
50 if (size)
51 *size = dtb_node_read_number(prop + na, ns);
52 if (flags)
53 *flags = 0x200;
54 return prop;
55 }
56 return NULL;
57}

Callers 1

dtb_node_get_addr_indexFunction · 0.85

Calls 4

dtb_node_get_parentFunction · 0.85
dtb_node_read_numberFunction · 0.85

Tested by

no test coverage detected