Lines Matching refs:fme
26 * fme.c -- fault management exercise module
50 #include "fme.h"
69 /* fme under construction is global so we can free it on module abort */
70 static struct fme *Nfmep;
79 static struct fme {
80 struct fme *next; /* next exercise */
81 unsigned long long ull; /* time when fme was created */
138 static void fme_eval(struct fme *fmep, fmd_event_t *ffep);
139 static enum fme_state hypothesise(struct fme *fmep, struct event *ep,
147 static void restore_suspects(struct fme *fmep);
148 static void save_suspects(struct fme *fmep);
149 static void destroy_fme(struct fme *f);
160 static void destroy_fme_bufs(struct fme *fp);
162 static struct fme *
165 struct fme *fmep;
174 * stats) has completed successfully. Adds the fme to global lists
177 static struct fme *
178 fme_ready(struct fme *fmep)
190 (void) sprintf(nbuf, "fme%d.Rcount", fmep->id);
192 (void) sprintf(nbuf, "fme%d.Hcall", fmep->id);
194 (void) sprintf(nbuf, "fme%d.Rcall", fmep->id);
197 (void) sprintf(nbuf, "fme%d.Ccall", fmep->id);
199 (void) sprintf(nbuf, "fme%d.Ecall", fmep->id);
202 (void) sprintf(nbuf, "fme%d.Tcall", fmep->id);
204 (void) sprintf(nbuf, "fme%d.Marrow", fmep->id);
207 (void) sprintf(nbuf, "fme%d.diags", fmep->id);
221 set_needed_arrows(struct event *ep, struct event *ep2, struct fme *fmep)
240 unset_needed_arrows(struct event *ep, struct event *ep2, struct fme *fmep)
256 static void clear_arrows(struct event *ep, struct event *ep2, struct fme *fmep);
279 (void) sprintf(nbuf, "fme%d.Rcount", Nfmep->id);
281 (void) sprintf(nbuf, "fme%d.Hcall", Nfmep->id);
284 (void) sprintf(nbuf, "fme%d.Rcall", Nfmep->id);
287 (void) sprintf(nbuf, "fme%d.Ccall", Nfmep->id);
290 (void) sprintf(nbuf, "fme%d.Ecall", Nfmep->id);
293 (void) sprintf(nbuf, "fme%d.Tcall", Nfmep->id);
295 (void) sprintf(nbuf, "fme%d.Marrow", Nfmep->id);
298 (void) sprintf(nbuf, "fme%d.diags", Nfmep->id);
324 static struct fme *
386 * Now go ahead and create the real fme using the pruned rules.
451 struct fme *sfp, *fp;
479 /* if we were in the middle of creating an fme, free it now */
497 * observation in order that we may resume correctly the fme in the
501 serialize_observation(struct fme *fp, const char *cls, const struct ipath *ipp)
532 * init_fme_bufs -- We keep several bits of state about an fme for
536 init_fme_bufs(struct fme *fp)
557 destroy_fme_bufs(struct fme *fp)
584 reconstitute_observations(struct fme *fmep)
685 * an in-progress fme.
692 struct fme *fmep;
915 destroy_fme(struct fme *f)
966 fme_print(int flags, struct fme *fmep)
1029 serd_eval(struct fme *fmep, fmd_hdl_t *hdl, fmd_event_t *ffep,
1314 upsets_eval(struct fme *fmep, fmd_event_t *ffep)
1354 struct fme *nfmep;
1375 * create a duplicate fme and case
1378 out(O_ALTFP|O_NONL, "duplicate fme for event [");
1466 * diagnosable, so check for that. Undo the new fme
1601 static int mark_arrows(struct fme *fmep, struct event *ep, int mark,
1606 clear_arrows(struct event *ep, struct event *ep2, struct fme *fmep)
1629 struct fme *fmep = NULL;
1630 struct fme *ofmep = NULL;
1631 struct fme *cfmep, *svfmep;
1763 /* Create overflow fme */
1845 struct fme *fmep;
1906 print_suspects(int circumstance, struct fme *fmep)
2130 static void publish_suspects(struct fme *fmep, struct rsl *srl);
2221 trim_suspects(struct fme *fmep, struct rsl *begin, struct rsl *begin2,
2748 publish_suspects(struct fme *fmep, struct rsl *srl)
3099 fme_undiagnosable(struct fme *f)
3155 * the related fme.
3161 struct fme *prev = NULL;
3162 struct fme *fmep;
3201 /* Get rid of any timer this fme has set */
3233 fme_set_timer(struct fme *fmep, unsigned long long wull)
3273 fme_timer_fired(struct fme *fmep, id_t tid)
3275 struct fme *ffmep = NULL;
3297 * Preserve the fme's suspect list in its psuspects list, NULLing the
3301 save_suspects(struct fme *fmep)
3326 * Retrieve the fme's suspect list from its psuspects list.
3329 restore_suspects(struct fme *fmep)
3347 fme_eval(struct fme *fmep, fmd_event_t *ffep)
3421 struct fme *nfmep;
3430 * duplicate case. Also need a temporary duplicate fme
3503 static int triggered(struct fme *fmep, struct event *ep, int mark);
3504 static enum fme_state effects_test(struct fme *fmep,
3507 static enum fme_state requirements_test(struct fme *fmep, struct event *ep,
3509 static enum fme_state causes_test(struct fme *fmep, struct event *ep,
3513 checkconstraints(struct fme *fmep, struct arrow *arrowp)
3581 triggered(struct fme *fmep, struct event *ep, int mark)
3604 mark_arrows(struct fme *fmep, struct event *ep, int mark,
3763 effects_test(struct fme *fmep, struct event *fault_event,
3821 requirements_test(struct fme *fmep, struct event *ep,
4042 causes_test(struct fme *fmep, struct event *ep,
4155 hypothesise(struct fme *fmep, struct event *ep,