/*************************************** * hv_init.c * * * ***************************************/ #include #include #include #include #include "../lib/mylib1.h" #include "a200.h" #define FINE 1001 #define PAUSA 1002 #define CONTINUA 1003 int pev_id, mev_id, cev_id; main(argc,argv) int argc; char **argv; { PROCS_INFO *hv_procs_mod; int i, iev; unsigned long pid; FILE *pipe; cev_id = sem_link_cr("A200_CAEN", argv[0]); mev_id = sem_link_cr("sy127mod", argv[0]); pev_id = sem_link_cr("hv_pr_info", argv[0]); if((hv_procs_mod = modlink("hv_pr_info", 0)) == -1) exit(_errmsg(errno,"%s: err. linking hv_pr_info module\n",argv[0])); sem_wait(cev_id, argv[0]); sem_wait(mev_id, argv[0]); sem_wait(pev_id, argv[0]); pid = hv_procs_mod->sy127_vis_mon_id; printf(" %s is going to kill pid %d\n", argv[0], pid); if (pid > 0) if (kill(pid, FINE) == -1) exit(_errmsg(errno,"%s: error killing sy127_vis_mon \n", argv[0])); pid = hv_procs_mod->sy127_st_mon_id; printf(" %s is going to kill pid %d\n", argv[0], pid); if (pid > 0) if (kill(pid, FINE) == -1) exit(_errmsg(errno,"%s: error killing sy127_st_mon \n", argv[0])); pid = hv_procs_mod->sy127_par_mon_id; printf(" %s is going to kill pid %d\n", argv[0], pid); if (pid > 0) if (kill(pid, FINE) == -1) exit(_errmsg(errno,"%s: error killing sy127_par_mon \n", argv[0])); wait(0); wait(0); wait(0); sem_free(mev_id, argv[0]); sem_free(cev_id, argv[0]); hv_procs_mod->sy127_vis_mon_id = 0; hv_procs_mod->sy127_st_mon_id = 0; hv_procs_mod->sy127_par_mon_id = 0; sem_free(pev_id, argv[0]); sem_unl_del(cev_id, "A200_CAEN", argv[0]); sleep (5); sem_unl_del(mev_id, "SY127mod", argv[0]); sleep (5); sem_unl_del(pev_id, "hv_pr_info", argv[0]); sleep (5); while(1){ if ( (int) munload("sy127par", 0) == -1) break; } while(1){ if ( (int) munload("hv_pr_info", 0) == -1) break; } }