Lines Matching refs:subtree
419 struct mapper_async_subtree* subtree = userdata; in async_subtree_timeout_callback() local
421 sd_event_source_unref(subtree->event_source); in async_subtree_timeout_callback()
423 subtree->conn, NULL, "xyz.openbmc_project.ObjectMapper", in async_subtree_timeout_callback()
426 async_subtree_getpaths_callback, subtree, "sias", subtree->namespace, 0, in async_subtree_timeout_callback()
427 1, subtree->interface); in async_subtree_timeout_callback()
430 async_subtree_done(r, subtree); in async_subtree_timeout_callback()
440 struct mapper_async_subtree* subtree = userdata; in async_subtree_getpaths_callback() local
443 if (subtree->finished) in async_subtree_getpaths_callback()
453 if (subtree->op == MAPPER_OP_REMOVE) in async_subtree_getpaths_callback()
463 if ((r == EBUSY || r == ENOBUFS) && subtree->retry < mapper_busy_retries) in async_subtree_getpaths_callback()
465 r = sd_event_now(subtree->loop, CLOCK_MONOTONIC, &next_retry); in async_subtree_getpaths_callback()
468 async_subtree_done(r, subtree); in async_subtree_getpaths_callback()
472 next_retry += mapper_busy_delay_interval_usec * (1 << subtree->retry); in async_subtree_getpaths_callback()
473 r = sd_event_add_time(subtree->loop, &subtree->event_source, in async_subtree_getpaths_callback()
475 async_subtree_timeout_callback, subtree); in async_subtree_getpaths_callback()
476 ++subtree->retry; in async_subtree_getpaths_callback()
479 async_subtree_done(r, subtree); in async_subtree_getpaths_callback()
488 async_subtree_done(-r, subtree); in async_subtree_getpaths_callback()
492 if (subtree->op == MAPPER_OP_REMOVE) in async_subtree_getpaths_callback()
497 async_subtree_done(r, subtree); in async_subtree_getpaths_callback()
504 async_subtree_done(r, subtree); in async_subtree_getpaths_callback()
512 async_subtree_done(0, subtree); in async_subtree_getpaths_callback()
519 static int async_subtree_getpaths(mapper_async_subtree* subtree) in async_subtree_getpaths() argument
523 subtree->retry = 0; in async_subtree_getpaths()
524 subtree->event_source = NULL; in async_subtree_getpaths()
526 subtree->conn, NULL, "xyz.openbmc_project.ObjectMapper", in async_subtree_getpaths()
529 async_subtree_getpaths_callback, subtree, "sias", subtree->namespace, 0, in async_subtree_getpaths()
530 1, subtree->interface); in async_subtree_getpaths()
545 mapper_async_subtree* subtree = t; in async_subtree_match_callback() local
546 if (subtree->finished) in async_subtree_match_callback()
551 r = async_subtree_getpaths(subtree); in async_subtree_match_callback()
554 async_subtree_done(r, subtree); in async_subtree_match_callback()
582 mapper_async_subtree* subtree = NULL; in mapper_subtree_async() local
584 subtree = malloc(sizeof(*subtree)); in mapper_subtree_async()
585 if (!subtree) in mapper_subtree_async()
590 memset(subtree, 0, sizeof(*subtree)); in mapper_subtree_async()
591 subtree->conn = conn; in mapper_subtree_async()
592 subtree->loop = loop; in mapper_subtree_async()
593 subtree->namespace = namespace; in mapper_subtree_async()
594 subtree->interface = interface; in mapper_subtree_async()
595 subtree->callback = callback; in mapper_subtree_async()
596 subtree->userdata = userdata; in mapper_subtree_async()
597 subtree->op = op; in mapper_subtree_async()
599 if (subtree->op == MAPPER_OP_REMOVE) in mapper_subtree_async()
601 r = sd_bus_add_match(conn, &subtree->slot, interfaces_removed_match, in mapper_subtree_async()
602 async_subtree_match_callback, subtree); in mapper_subtree_async()
616 r = async_subtree_getpaths(subtree); in mapper_subtree_async()
623 *t = subtree; in mapper_subtree_async()
628 sd_bus_slot_unref(subtree->slot); in mapper_subtree_async()
630 free(subtree); in mapper_subtree_async()