/*************************************** * hv_continue.c * * * ***************************************/ #include #include #include #include #include #include "../lib/mylib1.h" #include "a200.h" #define CONTINUE 1002 extern int os9forkc(); extern char **environ; char *argblk[5]; int hra[6]; FILE *fp, *fopen(); main(argc,argv) int argc; char **argv; { PROCS_INFO *hv_procs_mod; int ev127_id, ev227_id, evpro_id; int i, iev, tcycle; char parm[20]; unsigned long pid; FILE *pipe; int nwait = 0; if (argc < 2) usage(); if (strcmp(argv[1], "ok") && strcmp(argv[1], "OK")) usage(); /* link to semaphore */ evpro_id = sem_link("hv_pr_info", argv[0]); if((hv_procs_mod = (PROCS_INFO *)modlink("hv_pr_info", 0)) == (PROCS_INFO *)-1) /* exit(_errmsg(errno, */ printf( "hv_continue: err. link data module hv_procs_info, errno %d\n", errno); sem_wait(evpro_id, argv[0]); /* continue V and I monitor */ if ( (pid = hv_procs_mod->sy127_vi_mon_id) != 0){ if (!hv_procs_mod->sy127_vi_mon_active){ if (kill(pid, CONTINUE) == -1) exit(_errmsg(errno,"%s: error cont'ing sy127_vi_mon\n", argv[0])); } } /* continue V and I monitor sender */ if ( (pid = hv_procs_mod->sy127_vi_send_id) != 0){ if (!hv_procs_mod->sy127_vi_send_active){ if (kill(pid, CONTINUE) == -1) exit(_errmsg(errno,"%s: error cont'ing sy127_vi_send\n", argv[0])); } } if ( (pid = hv_procs_mod->sy227_vi_send_id) != 0){ if (!hv_procs_mod->sy227_vi_send_active){ if (kill(pid, CONTINUE) == -1) exit(_errmsg(errno,"%s: error cont'ing sy227_vi_send\n", argv[0])); } } /* continue STATUS monitor */ if ( (pid = hv_procs_mod->sy127_st_mon_id) != 0){ if (!hv_procs_mod->sy127_st_mon_active){ if (kill(pid, CONTINUE) == -1) exit(_errmsg(errno,"%s: error cont'ing sy127_par_mon\n", argv[0])); } } /* continue Parameter monitor */ if ( (pid = hv_procs_mod->sy127_par_mon_id) != 0){ if (!hv_procs_mod->sy127_par_mon_active) if (kill(pid, CONTINUE) == -1) exit(_errmsg(errno,"%s: error cont'ing sy127_par_mon\n", argv[0])); } /* continue SY227 STATUS monitor */ if ( (pid = hv_procs_mod->sy227_st_mon_id) != 0){ if (!hv_procs_mod->sy227_st_mon_active) if (kill(pid, CONTINUE) == -1) exit(_errmsg(errno,"%s: error cont'ing sy227_vi_mon \n", argv[0])); } /* continue SY227 vmon imon monitor */ if ( (pid = hv_procs_mod->sy227_vi_mon_id) != 0){ if (!hv_procs_mod->sy227_vi_mon_active) if (kill(pid, CONTINUE) == -1) exit(_errmsg(errno,"%s: error cont'ing sy227_vi_mon \n", argv[0])); } /* continue A200_resetter*/ if ( (pid = hv_procs_mod->a200_resetter_id) != 0){ if (!hv_procs_mod->a200_resetter_active) if (kill(pid, CONTINUE) == -1) exit(_errmsg(errno,"%s: error cont'ing a200_resetter\n", argv[0])); } /* continue xxcond */ if ( (pid = hv_procs_mod->xxcond_id) != 0){ if (!hv_procs_mod->xxcond_active) if (kill(pid, CONTINUE) == -1) exit(_errmsg(errno,"%s: error cont'ing xxcond\n", argv[0])); } sleep(1); sem_free(evpro_id, argv[0]); sem_unl(evpro_id, argv[0]); munlink(hv_procs_mod); } usage() { printf(" hv_continue : restarts hwc system after a pause \n\n"); printf(" usage : hv_continue ok \n"); exit(0); }