Lines Matching defs:svcp

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