Lines Matching defs:sc

70 	struct simplebus_softc *sc = (struct simplebus_softc *)self;
75 sc->sc_node = fa->fa_node;
76 sc->sc_iot = fa->fa_iot;
77 sc->sc_dmat = fa->fa_dmat;
78 sc->sc_acells = OF_getpropint(sc->sc_node, "#address-cells",
80 sc->sc_scells = OF_getpropint(sc->sc_node, "#size-cells",
82 sc->sc_pacells = fa->fa_acells;
83 sc->sc_pscells = fa->fa_scells;
85 if (OF_getprop(sc->sc_node, "name", name, sizeof(name)) > 0) {
92 memcpy(&sc->sc_bus, sc->sc_iot, sizeof(sc->sc_bus));
93 sc->sc_bus.bus_private = sc;
94 sc->sc_bus._space_map = simplebus_bs_map;
96 sc->sc_rangeslen = OF_getproplen(sc->sc_node, "ranges");
97 if (sc->sc_rangeslen > 0 && !(sc->sc_rangeslen % sizeof(uint32_t))) {
98 sc->sc_ranges = malloc(sc->sc_rangeslen, M_TEMP, M_WAITOK);
99 OF_getpropintarray(sc->sc_node, "ranges", sc->sc_ranges,
100 sc->sc_rangeslen);
104 sc->sc_early = 1;
105 for (node = OF_child(sc->sc_node); node; node = OF_peer(node))
108 sc->sc_early = 0;
109 for (node = OF_child(sc->sc_node); node; node = OF_peer(node))
116 struct simplebus_softc *sc = (struct simplebus_softc *)self;
119 if (cf->cf_loc[0] == sc->sc_early)
150 struct simplebus_softc *sc = (struct simplebus_softc *)self;
166 fa.fa_iot = &sc->sc_bus;
167 fa.fa_dmat = sc->sc_dmat;
168 fa.fa_acells = sc->sc_acells;
169 fa.fa_scells = sc->sc_scells;
172 line = (sc->sc_acells + sc->sc_scells) * sizeof(uint32_t);
182 if (sc->sc_acells >= 1)
184 if (sc->sc_acells == 2) {
188 cell += sc->sc_acells;
189 if (sc->sc_scells >= 1)
191 if (sc->sc_scells == 2) {
195 cell += sc->sc_scells;
209 config_found_sm(self, &fa, sc->sc_early ? NULL : simplebus_print,
223 struct simplebus_softc *sc = t->bus_private;
229 parent = OF_parent(sc->sc_node);
231 return bus_space_map(sc->sc_iot, addr, size, flag, bshp);
233 if (sc->sc_rangeslen < 0)
235 if (sc->sc_rangeslen == 0)
236 return bus_space_map(sc->sc_iot, addr, size, flag, bshp);
238 rlen = sc->sc_rangeslen / sizeof(uint32_t);
239 rone = sc->sc_pacells + sc->sc_acells + sc->sc_scells;
242 for (range = sc->sc_ranges; rlen >= rone; rlen -= rone, range += rone) {
245 if (sc->sc_acells == 2)
247 rsize = range[sc->sc_acells + sc->sc_pacells];
248 if (sc->sc_scells == 2)
250 range[sc->sc_acells + sc->sc_pacells + 1];
257 rto = range[sc->sc_acells];
258 if (sc->sc_pacells == 2)
259 rto = (rto << 32) + range[sc->sc_acells + 1];
264 return bus_space_map(sc->sc_iot, addr, size, flag, bshp);