Lines Matching defs:rle

3103 	struct resource_list_entry *rle;
3105 while ((rle = STAILQ_FIRST(rl)) != NULL) {
3106 if (rle->res)
3109 free(rle, M_BUS);
3158 struct resource_list_entry *rle;
3160 rle = resource_list_find(rl, type, rid);
3161 if (!rle) {
3162 rle = malloc(sizeof(struct resource_list_entry), M_BUS,
3164 if (!rle)
3166 STAILQ_INSERT_TAIL(rl, rle, link);
3167 rle->type = type;
3168 rle->rid = rid;
3169 rle->res = NULL;
3170 rle->flags = 0;
3173 if (rle->res)
3176 rle->start = start;
3177 rle->end = end;
3178 rle->count = count;
3179 return (rle);
3197 struct resource_list_entry *rle;
3199 rle = resource_list_find(rl, type, rid);
3200 if (rle == NULL || rle->res == NULL)
3202 if ((rle->flags & (RLE_RESERVED | RLE_ALLOCATED)) == RLE_RESERVED) {
3203 KASSERT(!(rman_get_flags(rle->res) & RF_ACTIVE),
3226 struct resource_list_entry *rle;
3228 rle = resource_list_find(rl, type, rid);
3229 if (rle != NULL && rle->flags & RLE_RESERVED)
3247 struct resource_list_entry *rle;
3249 STAILQ_FOREACH(rle, rl, link) {
3250 if (rle->type == type && rle->rid == rid)
3251 return (rle);
3266 struct resource_list_entry *rle = resource_list_find(rl, type, rid);
3268 if (rle) {
3269 if (rle->res != NULL)
3271 STAILQ_REMOVE(rl, rle, resource_list_entry, link);
3272 free(rle, M_BUS);
3316 struct resource_list_entry *rle = NULL;
3330 rle = resource_list_find(rl, type, *rid);
3331 rle->flags |= RLE_RESERVED;
3373 struct resource_list_entry *rle = NULL;
3382 rle = resource_list_find(rl, type, *rid);
3384 if (!rle)
3387 if (rle->res) {
3388 if (rle->flags & RLE_RESERVED) {
3389 if (rle->flags & RLE_ALLOCATED)
3393 rle->res) != 0)
3395 rle->flags |= RLE_ALLOCATED;
3396 return (rle->res);
3405 start = rle->start;
3406 count = ulmax(count, rle->count);
3407 end = ulmax(rle->end, start + count - 1);
3410 rle->res = BUS_ALLOC_RESOURCE(device_get_parent(bus), child,
3416 if (rle->res) {
3417 rle->start = rman_get_start(rle->res);
3418 rle->end = rman_get_end(rle->res);
3419 rle->count = count;
3422 return (rle->res);
3446 struct resource_list_entry *rle = NULL;
3455 rle = resource_list_find(rl, type, rid);
3457 if (!rle)
3459 if (!rle->res)
3461 if (rle->flags & RLE_RESERVED) {
3462 if (rle->flags & RLE_ALLOCATED) {
3469 rle->flags &= ~RLE_ALLOCATED;
3480 rle->res = NULL;
3503 struct resource_list_entry *rle;
3507 STAILQ_FOREACH(rle, rl, link) {
3508 if (rle->type != type)
3510 if (rle->res == NULL)
3512 if ((rle->flags & (RLE_RESERVED | RLE_ALLOCATED)) ==
3517 rman_get_rid(rle->res), rle->res);
3546 struct resource_list_entry *rle = NULL;
3553 rle = resource_list_find(rl, type, rid);
3555 if (!rle)
3557 if (!(rle->flags & RLE_RESERVED))
3559 if (rle->flags & RLE_ALLOCATED)
3561 rle->flags &= ~RLE_RESERVED;
3562 return (resource_list_release(rl, bus, child, type, rid, rle->res));
3584 struct resource_list_entry *rle;
3590 STAILQ_FOREACH(rle, rl, link) {
3591 if (rle->type == type) {
3597 retval += printf(format, rle->start);
3598 if (rle->count > 1) {
3600 retval += printf(format, rle->start +
3601 rle->count - 1);
3618 struct resource_list_entry *rle;
3620 while ((rle = STAILQ_FIRST(rl)) != NULL) {
3621 if (rle->res)
3622 bus_release_resource(rman_get_device(rle->res),
3623 rle->type, rle->rid, rle->res);
3625 free(rle, M_BUS);
4344 struct resource_list_entry * rle = NULL;
4350 rle = resource_list_find(rl, type, rid);
4351 if (!rle)
4355 *startp = rle->start;
4357 *countp = rle->count;