staticvoid get_cells(struct device_node *dp, int *addrc, int *sizec)
{ if (addrc)
*addrc = of_n_addr_cells(dp); if (sizec)
*sizec = of_n_size_cells(dp);
}
/* *Defaulttranslator(genericbus)
*/
void of_bus_default_count_cells(struct device_node *dev, int *addrc, int *sizec)
{
get_cells(dev, addrc, sizec);
}
/* Make sure the least significant 64-bits are in-range. Even *for3or4cellvaluesitisagoodenoughapproximation.
*/ int of_out_of_range(const u32 *addr, const u32 *base, const u32 *size, int na, int ns)
{
u64 a = of_read_addr(addr, na);
u64 b = of_read_addr(base, na);
if (a < b) return1;
b += of_read_addr(size, ns); if (a >= b) return1;
return0;
}
int of_bus_default_map(u32 *addr, const u32 *range, int na, int ns, int pna)
{
u32 result[OF_MAX_ADDR_CELLS]; int i;
int of_bus_sbus_match(struct device_node *np)
{ struct device_node *dp = np;
while (dp) { if (of_node_name_eq(dp, "sbus") ||
of_node_name_eq(dp, "sbi")) return1;
/* Have a look at use_1to1_mapping(). We're trying *tomatchSBUSifthat'sthetop-levelbusandwe *don'thavesomeinterveningrealbusthatprovides *rangesbasedtranslations.
*/ if (of_property_present(dp, "ranges")) break;
dp = dp->parent;
}
return0;
}
void of_bus_sbus_count_cells(struct device_node *child, int *addrc, int *sizec)
{ if (addrc)
*addrc = 2; if (sizec)
*sizec = 1;
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-09-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.