Lines Matching refs:svcp
160 inst_t *svcp; member
208 return (b->svcp - a->svcp); in svcptr_compare()
286 load_dependencies(inst_t *svcp, scf_instance_t *inst) in load_dependencies() argument
293 assert(svcp->dependencies == NULL); in load_dependencies()
294 svcp->dependencies = uu_list_create(depgroups, svcp, UU_LIST_DEBUG); in load_dependencies()
295 if (svcp->dependencies == NULL) in load_dependencies()
345 svcp->svcname, svcp->instname, g_value); in load_dependencies()
360 "property.\n"), svcp->svcname, in load_dependencies()
361 svcp->instname); in load_dependencies()
400 r = uu_list_append(svcp->dependencies, dg); in load_dependencies()
411 svc_t *svcp; in add_instance() local
418 for (svcp = services[h]; svcp != NULL; svcp = svcp->next) { in add_instance()
419 if (strcmp(svcp->svcname, svcname) == 0) in add_instance()
423 if (svcp == NULL) { in add_instance()
424 svcp = safe_malloc(sizeof (*svcp)); in add_instance()
425 svcp->svcname = safe_strdup(svcname); in add_instance()
426 svcp->instances = uu_list_create(insts, svcp, UU_LIST_DEBUG); in add_instance()
427 if (svcp->instances == NULL) in add_instance()
429 svcp->next = services[h]; in add_instance()
430 services[h] = svcp; in add_instance()
435 instp->svcname = svcp->svcname; in add_instance()
535 r = uu_list_append(svcp->instances, instp); in add_instance()
608 add_svcptr(uu_list_t *lst, inst_t *svcp) in add_svcptr() argument
615 spp->svcp = svcp; in add_svcptr()
656 copy->svcp = spp->svcp; in add_causes()
661 add_svcptr(g_causes, spp->svcp); in add_causes()
685 svc_t *svcp; in get_svc() local
689 for (svcp = services[h]; svcp != NULL; svcp = svcp->next) { in get_svc()
690 if (strcmp(svcp->svcname, sn) == 0) in get_svc()
694 return (svcp); in get_svc()
699 get_inst(svc_t *svcp, const char *in) in get_inst() argument
703 for (instp = uu_list_first(svcp->instances); in get_inst()
705 instp = uu_list_next(svcp->instances, instp)) { in get_inst()
748 process_reqall(inst_t *svcp, struct dependency_group *dg) in process_reqall() argument
765 (void) fprintf(stderr, emsg_invalid_dep, svcp->svcname, in process_reqall()
766 svcp->instname, d->fmri); in process_reqall()
771 r = uu_list_append(svcp->baddeps, d); in process_reqall()
785 r = add_causes(svcp, ip); in process_reqall()
806 r = add_causes(svcp, ip); in process_reqall()
821 process_reqany(inst_t *svcp, struct dependency_group *dg) in process_reqany() argument
839 (void) fprintf(stderr, emsg_invalid_dep, svcp->svcname, in process_reqany()
840 svcp->instname, d->fmri); in process_reqany()
881 r = uu_list_append(svcp->baddeps, d); in process_reqany()
894 r = add_causes(svcp, ip); in process_reqany()
907 r = add_causes(svcp, ip); in process_reqany()
919 process_optall(inst_t *svcp, struct dependency_group *dg) in process_optall() argument
940 (void) fprintf(stderr, emsg_invalid_dep, svcp->svcname, in process_optall()
941 svcp->instname, d->fmri); in process_optall()
953 r = add_causes(svcp, ip); in process_optall()
967 r = add_causes(svcp, ip); in process_optall()
982 process_excall(inst_t *svcp, struct dependency_group *dg) in process_excall() argument
1000 (void) fprintf(stderr, emsg_invalid_dep, svcp->svcname, in process_excall()
1001 svcp->instname, d->fmri); in process_excall()
1013 r = add_causes(svcp, ip); in process_excall()
1026 r = add_causes(svcp, ip); in process_excall()
1039 process_svc_dg(inst_t *svcp, struct dependency_group *dg) in process_svc_dg() argument
1043 return (process_reqall(svcp, dg)); in process_svc_dg()
1046 return (process_reqany(svcp, dg)); in process_svc_dg()
1049 return (process_optall(svcp, dg)); in process_svc_dg()
1052 return (process_excall(svcp, dg)); in process_svc_dg()
1097 process_file_dg(inst_t *svcp, struct dependency_group *dg) in process_file_dg() argument
1117 (void) fprintf(stderr, emsg_invalid_dep, svcp->svcname, in process_file_dg()
1118 svcp->instname, d->fmri); in process_file_dg()
1129 r = uu_list_append(svcp->baddeps, d); in process_file_dg()
1144 r = uu_list_append(svcp->baddeps, d); in process_file_dg()
1166 r = uu_list_append(svcp->baddeps, deps[i]); in process_file_dg()
1179 determine_causes(inst_t *svcp, void *canfailp) in determine_causes() argument
1184 if (svcp->active) { in determine_causes()
1186 " svc:/%s:%s\n"), svcp->svcname, svcp->instname); in determine_causes()
1190 if (svcp->causes != NULL) in determine_causes()
1193 svcp->causes = uu_list_create(svcptrs, svcp, UU_LIST_DEBUG); in determine_causes()
1194 svcp->baddeps = uu_list_create(deps, svcp, UU_LIST_DEBUG); in determine_causes()
1195 if (svcp->causes == NULL || svcp->baddeps == NULL) in determine_causes()
1198 if (inst_running(svcp) || in determine_causes()
1199 strcmp(svcp->state, SCF_STATE_STRING_UNINIT) == 0) { in determine_causes()
1204 add_svcptr(svcp->causes, svcp); in determine_causes()
1208 if (strcmp(svcp->state, SCF_STATE_STRING_MAINT) == 0) { in determine_causes()
1209 add_svcptr(svcp->causes, svcp); in determine_causes()
1210 add_svcptr(g_causes, svcp); in determine_causes()
1214 if (strcmp(svcp->state, SCF_STATE_STRING_DISABLED) == 0) { in determine_causes()
1215 add_svcptr(svcp->causes, svcp); in determine_causes()
1216 if (svcp->enabled != 0) in determine_causes()
1217 add_svcptr(g_causes, svcp); in determine_causes()
1222 if (strcmp(svcp->state, SCF_STATE_STRING_OFFLINE) != 0) { in determine_causes()
1225 svcp->svcname, svcp->instname, svcp->state); in determine_causes()
1226 add_svcptr(svcp->causes, svcp); in determine_causes()
1227 add_svcptr(g_causes, svcp); in determine_causes()
1231 if (strcmp(svcp->next_state, SCF_STATE_STRING_NONE) != 0) { in determine_causes()
1232 add_svcptr(svcp->causes, svcp); in determine_causes()
1233 add_svcptr(g_causes, svcp); in determine_causes()
1237 svcp->active = 1; in determine_causes()
1244 for (dg = uu_list_first(svcp->dependencies); in determine_causes()
1246 dg = uu_list_next(svcp->dependencies, dg)) { in determine_causes()
1248 process_file_dg(svcp, dg); in determine_causes()
1252 r = process_svc_dg(svcp, dg); in determine_causes()
1255 svcp->active = 0; in determine_causes()
1262 svcp->svcname, svcp->instname, dg->type); in determine_causes()
1266 if (uu_list_numnodes(svcp->causes) == 0) { in determine_causes()
1267 if (uu_list_numnodes(svcp->baddeps) > 0) { in determine_causes()
1268 add_svcptr(g_causes, svcp); in determine_causes()
1269 add_svcptr(svcp->causes, svcp); in determine_causes()
1273 r = get_fmri(svcp->restarter, NULL, &restarter); in determine_causes()
1275 r = add_causes(svcp, restarter); in determine_causes()
1278 svcp->active = 0; in determine_causes()
1283 svcp->restarter_bad = r; in determine_causes()
1284 add_svcptr(svcp->causes, svcp); in determine_causes()
1285 add_svcptr(g_causes, svcp); in determine_causes()
1290 assert(uu_list_numnodes(svcp->causes) > 0); in determine_causes()
1292 svcp->active = 0; in determine_causes()
1299 svc_t *svcp; in determine_all_causes() local
1303 for (svcp = services[i]; svcp != NULL; svcp = svcp->next) in determine_all_causes()
1304 (void) uu_list_walk(svcp->instances, in determine_all_causes()
1337 if (determine_impact(idsp->svcp) != 0) { in determine_impact()
1343 add_svcptr(ip->impact, idsp->svcp); in determine_impact()
1345 for (spp = uu_list_first(idsp->svcp->impact); in determine_impact()
1347 spp = uu_list_next(idsp->svcp->impact, spp)) { in determine_impact()
1352 copy->svcp = spp->svcp; in determine_impact()
1548 print_dependency_reasons(const inst_t *svcp, int verbose) in print_dependency_reasons() argument
1558 if (uu_list_numnodes(svcp->baddeps) == 0 && in print_dependency_reasons()
1559 uu_list_numnodes(svcp->causes) == 1) { in print_dependency_reasons()
1560 spp = uu_list_first(svcp->causes); in print_dependency_reasons()
1561 if (spp->svcp == svcp) { in print_dependency_reasons()
1562 switch (svcp->restarter_bad) { in print_dependency_reasons()
1571 svcp->restarter); in print_dependency_reasons()
1578 svcp->restarter); in print_dependency_reasons()
1586 __FILE__, __LINE__, svcp->restarter_bad); in print_dependency_reasons()
1598 for (d = uu_list_first(svcp->baddeps); in print_dependency_reasons()
1600 d = uu_list_next(svcp->baddeps, d)) { in print_dependency_reasons()
1608 for (spp = uu_list_first(svcp->causes); in print_dependency_reasons()
1609 spp != NULL && spp->svcp != svcp; in print_dependency_reasons()
1610 spp = uu_list_next(svcp->causes, spp)) { in print_dependency_reasons()
1611 determine_summary(spp->svcp); in print_dependency_reasons()
1613 if (inst_running(spp->svcp)) { in print_dependency_reasons()
1616 spp->svcp->svcname, spp->svcp->instname); in print_dependency_reasons()
1621 spp->svcp->svcname, spp->svcp->instname, in print_dependency_reasons()
1622 spp->svcp->summary) <= 80) { in print_dependency_reasons()
1625 spp->svcp->svcname, spp->svcp->instname, in print_dependency_reasons()
1626 spp->svcp->summary); in print_dependency_reasons()
1630 " %s\n"), spp->svcp->svcname, in print_dependency_reasons()
1631 spp->svcp->instname, spp->svcp->summary); in print_dependency_reasons()
1645 svcp->svcname, svcp->instname); in print_dependency_reasons()
1655 if (pp == spp->svcp) in print_dependency_reasons()
1696 print_reasons(const inst_t *svcp, int verbose) in print_reasons() argument
1701 if (strcmp(svcp->state, SCF_STATE_STRING_ONLINE) == 0) in print_reasons()
1704 if (strcmp(svcp->state, SCF_STATE_STRING_UNINIT) == 0) { in print_reasons()
1707 r = get_fmri(svcp->restarter, NULL, &rsp); in print_reasons()
1716 "Restarter \"%s\" is invalid.\n"), svcp->restarter); in print_reasons()
1723 svcp->restarter); in print_reasons()
1734 svcp->restarter); in print_reasons()
1739 svcp->restarter); in print_reasons()
1743 } else if (strcmp(svcp->state, SCF_STATE_STRING_DISABLED) == 0) { in print_reasons()
1744 if (!svcp->temporary) { in print_reasons()
1754 } else if (strcmp(svcp->state, SCF_STATE_STRING_MAINT) == 0) { in print_reasons()
1755 if (strcmp(svcp->aux_state, "administrative_request") == 0) { in print_reasons()
1759 } else if (strcmp(svcp->aux_state, "dependency_cycle") == 0) { in print_reasons()
1763 } else if (strcmp(svcp->aux_state, "fault_threshold_reached") == in print_reasons()
1765 print_method_failure(svcp, &dc); in print_reasons()
1766 } else if (strcmp(svcp->aux_state, "service_request") == 0) { in print_reasons()
1767 if (svcp->aux_fmri) { in print_reasons()
1769 "requested by \"%s\"\n"), svcp->aux_fmri); in print_reasons()
1770 print_aux_fmri_logs(svcp->aux_fmri); in print_reasons()
1776 } else if (strcmp(svcp->aux_state, "invalid_dependency") == 0) { in print_reasons()
1779 } else if (strcmp(svcp->aux_state, "invalid_restarter") == 0) { in print_reasons()
1781 "invalid.\n"), svcp->restarter); in print_reasons()
1783 } else if (strcmp(svcp->aux_state, "method_failed") == 0) { in print_reasons()
1784 print_method_failure(svcp, &dc); in print_reasons()
1785 } else if (strcmp(svcp->aux_state, "restarting_too_quickly") == in print_reasons()
1789 } else if (strcmp(svcp->aux_state, "none") == 0) { in print_reasons()
1792 svcp->restarter); in print_reasons()
1799 } else if (strcmp(svcp->state, SCF_STATE_STRING_OFFLINE) == 0) { in print_reasons()
1800 if (strcmp(svcp->next_state, SCF_STATE_STRING_ONLINE) == 0) { in print_reasons()
1804 } else if (strcmp(svcp->next_state, SCF_STATE_STRING_NONE) == in print_reasons()
1806 print_dependency_reasons(svcp, verbose); in print_reasons()
1812 svcp->next_state); in print_reasons()
1816 } else if (strcmp(svcp->state, SCF_STATE_STRING_DEGRADED) == 0) { in print_reasons()
1822 svcp->state); in print_reasons()
1960 print_service(inst_t *svcp, int verbose) in print_service() argument
1974 (void) printf(gettext("svc:/%s:%s"), svcp->svcname, svcp->instname); in print_service()
1976 if (scf_scope_get_service(g_local_scope, svcp->svcname, g_svc) != 0) { in print_service()
1980 } else if (scf_service_get_instance(g_svc, svcp->instname, g_inst) != in print_service()
2003 stime = svcp->stime.tv_sec; in print_service()
2013 (void) printf(gettext(" State: %s since %s\n"), svcp->state, timebuf); in print_service()
2018 print_reasons(svcp, verbose); in print_service()
2025 (void) determine_impact(svcp); in print_service()
2027 switch (uu_list_numnodes(svcp->impact)) { in print_service()
2029 if (inst_running(svcp)) in print_service()
2049 uu_list_numnodes(svcp->impact)); in print_service()
2053 uu_list_numnodes(svcp->impact)); in print_service()
2057 for (spp = uu_list_first(svcp->impact); in print_service()
2059 spp = uu_list_next(svcp->impact, spp)) in print_service()
2061 spp->svcp->svcname, spp->svcp->instname); in print_service()
2154 (void) determine_impact(spp->svcp); in explain()
2155 ary[i++] = spp->svcp; in explain()