/*************************************** * hv_pause.c * * * ***************************************/ #include #include #include #include #include #include "../lib/mylib1.h" #include "a200.h" #define PAUSE 1001 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_pause: err. link data module hv_procs_info, errno %d\n", errno); sem_wait(evpro_id, argv[0]); /* pause V and I monitor */ if ( (pid = hv_procs_mod->sy127_vi_mon_id) != 0){ if (hv_procs_mod->sy127_vi_mon_active) hv_procs_mod->sy127_vi_mon_com = PAUSE; else { if (kill(pid, PAUSE) == -1) exit(_errmsg(errno,"%s: error pausing sy127_vis_mon \n", argv[0])); } } /* pause STATUS monitor */ if ( (pid = hv_procs_mod->sy127_st_mon_id) != 0){ if (hv_procs_mod->sy127_st_mon_active) hv_procs_mod->sy127_st_mon_com = PAUSE; else { if (kill(pid, PAUSE) == -1) exit(_errmsg(errno,"%s: error pausing sy127_par_mon \n", argv[0])); } } /* pause Parameter monitor */ if ( (pid = hv_procs_mod->sy127_par_mon_id) != 0){ if (hv_procs_mod->sy127_par_mon_active) hv_procs_mod->sy127_par_mon_com = PAUSE; else { if (kill(pid, PAUSE) == -1) exit(_errmsg(errno,"%s: error pausing sy127_par_mon \n", argv[0])); } } /* pause SY227 STATUS monitor */ if ( (pid = hv_procs_mod->sy227_st_mon_id) != 0){ if (hv_procs_mod->sy227_st_mon_active) hv_procs_mod->sy227_st_mon_com= PAUSE; else { if (kill(pid, PAUSE) == -1) exit(_errmsg(errno,"%s: error pausing sy227_vi_mon \n", argv[0])); } } /* pause SY227 vmon imon monitor */ if ( (pid = hv_procs_mod->sy227_vi_mon_id) != 0){ if (hv_procs_mod->sy227_vi_mon_active) hv_procs_mod->sy227_vi_mon_com = PAUSE; else { if (kill(pid, PAUSE) == -1) exit(_errmsg(errno,"%s: error pausing sy227_vi_mon \n", argv[0])); } } /* pause V and I sender */ if ( (pid = hv_procs_mod->sy127_vi_send_id) != 0){ if (hv_procs_mod->sy127_vi_send_active) hv_procs_mod->sy127_vi_send_com = PAUSE; else { if (kill(pid, PAUSE) == -1) exit(_errmsg(errno,"%s: error pausing sy127_vi_send \n", argv[0])); } } if ( (pid = hv_procs_mod->sy227_vi_send_id) != 0){ if (hv_procs_mod->sy227_vi_send_active) hv_procs_mod->sy227_vi_send_com = PAUSE; else { if (kill(pid, PAUSE) == -1) exit(_errmsg(errno,"%s: error pausing sy227_vi_send \n", argv[0])); } } /* pause a200_resetter*/ if ( (pid = hv_procs_mod->a200_resetter_id) != 0){ if (hv_procs_mod->a200_resetter_active) hv_procs_mod->a200_resetter_com = PAUSE; else { if (kill(pid, PAUSE) == -1) exit(_errmsg(errno,"%s: error pausing a200_resetter \n", argv[0])); } } /* pause xxcond */ if ( (pid = hv_procs_mod->xxcond_id) != 0){ if (hv_procs_mod->xxcond_active) hv_procs_mod->xxcond_com = PAUSE; else { if (kill(pid, PAUSE) == -1) exit(_errmsg(errno,"%s: error pausing 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_pause : pauses hwc system \n\n"); printf(" usage : hv_pause ok \n"); exit(0); }