Lines Matching refs:rp
54 struct regspec tmp_reg, *rp;
72 rp = i_ddi_rnumber_to_regspec(rdip, rnumber);
73 if (rp == (struct regspec *)0) {
86 mp->map_obj.rp = rp;
95 tmp_reg = *(mp->map_obj.rp); /* Preserve underlying data */
96 rp = mp->map_obj.rp = &tmp_reg; /* Use tmp_reg in request */
103 rp->regspec_bustype, rp->regspec_addr, rp->regspec_size,
115 if (rp->regspec_bustype > 1 && rp->regspec_addr != 0) {
118 ddi_get_name(rdip), rp->regspec_bustype,
119 rp->regspec_addr, rp->regspec_size);
123 if (rp->regspec_bustype > 1 && rp->regspec_addr == 0) {
127 rp->regspec_bustype += (uint_t)offset;
132 rp->regspec_addr += (uint_t)offset;
136 rp->regspec_size = (uint_t)len;
143 rp->regspec_bustype, rp->regspec_addr, rp->regspec_size,
166 if ((error = i_ddi_apply_range(dip, rdip, mp->map_obj.rp)) != 0)
194 reg_is_enclosed_in_range(struct regspec *rp, struct rangespec *rangep)
196 if (rp->regspec_bustype != rangep->rng_cbustype)
199 if (rp->regspec_addr < rangep->rng_coffset)
205 if ((rp->regspec_addr + rp->regspec_size - 1) <=
214 * Apply range of dp to struct regspec *rp, if applicable.
219 i_ddi_apply_range(dev_info_t *dp, dev_info_t *rdip, struct regspec *rp)
241 if (reg_is_enclosed_in_range(rp, rangep))
250 ddi_map_debug(" Input: %x.%x.%x\n", rp->regspec_bustype,
251 rp->regspec_addr, rp->regspec_size);
257 rp->regspec_bustype = rangep->rng_bustype;
258 rp->regspec_addr += rangep->rng_offset - rangep->rng_coffset;
261 ddi_map_debug(" Return: %x.%x.%x\n", rp->regspec_bustype,
262 rp->regspec_addr, rp->regspec_size);