Exemple #1
0
int main(int argc, char **argv) {
	struct sigaction sigact;

	init_pagefile(); // init page file
	open_logger();   // open logfile

	/* Create shared memory and init vmem structure */
	vmem_init();
	TEST_AND_EXIT_ERRNO(!vmem, "Error initialising vmem");
	PRINT_DEBUG((stderr, "vmem successfully created\n"));

	// scan parameter
	vmem->adm.program_name = argv[0];
	vmem->adm.page_rep_algo = VMEM_ALGO_AGING;
	scan_params(argc, argv);

	/* Setup signal handler */
	sigact.sa_handler = sighandler;
	sigemptyset(&sigact.sa_mask);
	sigact.sa_flags = 0;

	TEST_AND_EXIT_ERRNO(sigaction(SIGUSR1, &sigact, NULL) == -1,
			"Error installing signal handler for USR1");
	PRINT_DEBUG((stderr, "USR1 handler successfully installed\n"));

	TEST_AND_EXIT_ERRNO(sigaction(SIGUSR2, &sigact, NULL) == -1,
			"Error installing signal handler for USR2");
	PRINT_DEBUG((stderr, "USR2 handler successfully installed\n"));

	TEST_AND_EXIT_ERRNO(sigaction(SIGINT, &sigact, NULL) == -1,
			"Error installing signal handler for INT");
	PRINT_DEBUG((stderr, "INT handler successfully installed\n"));

	/* Signal processing loop */
	while (1) {
		signal_number = 0;
		pause();
		if (signal_number == SIGUSR1) { /* Page fault */
			PRINT_DEBUG((stderr, "Processed SIGUSR1\n"));
			signal_number = 0;
		} else if (signal_number == SIGUSR2) { /* PT dump */
			PRINT_DEBUG((stderr, "Processed SIGUSR2\n"));
			signal_number = 0;
		} else if (signal_number == SIGINT) {
			PRINT_DEBUG((stderr, "Processed SIGINT\n"));
		}
	}

	return 0;
}
Exemple #2
0
int main(void) {
    struct sigaction sigact;

    /* Init pagefile */
    init_pagefile(MMANAGE_PFNAME);

    /* Open logfile */
    open_logfile();

    /* Create shared memory and init vmem structure */
    vmem_init();

    /* Setup signal handler */
    /* Handler for USR1 */
    sigact.sa_handler = save_sig_no;
    sigemptyset(&sigact.sa_mask);
    sigact.sa_flags = 0;
    if(sigaction(SIGUSR1, &sigact, NULL) == -1) {
        perror("Error installing signal handler for USR1");
        exit(EXIT_FAILURE);
    }
    else {
        DEBUG(fprintf(stderr, "USR1 handler successfully installed\n"));
    }

    if(sigaction(SIGUSR2, &sigact, NULL) == -1) {
        perror("Error installing signal handler for USR2");
        exit(EXIT_FAILURE);
    }
    else {
        DEBUG(fprintf(stderr, "USR2 handler successfully installed\n"));
    }

    if(sigaction(SIGINT, &sigact, NULL) == -1) {
        perror("Error installing signal handler for INT");
        exit(EXIT_FAILURE);
    }
    else {
        DEBUG(fprintf(stderr, "INT handler successfully installed\n"));
    }

    /* Signal processing loop */
    signal_proccessing_loop();
    exit(EXIT_SUCCESS);
}
Exemple #3
0
int
main(void)
{
  struct sigaction sigact;
  /* Init pagefile */
  init_pagefile(MMANAGE_PFNAME);
  if(!pagefile) {
    perror("Error creating pagefile\n");
    exit(EXIT_FAILURE);
  }
#ifdef DEBUG_MESSAGES
  else {
    fprintf(stderr, "pagefile successfully created\n");
  }
#endif /* DEBUG_MESSAGES */
  /* Open logfile */
  logfile = fopen(MMANAGE_LOGFNAME, "w");
  if(!logfile) {
    perror("Error creating logfile");
    exit(EXIT_FAILURE);
  }

  /* Create shared memory and init vmem structure */
  vmem_init();
  if(!vmem) {
    perror("Error initialising vmem");
    exit(EXIT_FAILURE);
  }
#ifdef DEBUG_MESSAGES
  else {
    fprintf(stderr, "vmem successfully created\n");
  }
#endif /* DEBUG_MESSAGES */
  /* Setup signal handler */
  /* Handler for USR1 */
  sigact.sa_handler = sighandler;
  sigemptyset(&sigact.sa_mask);
  sigact.sa_flags = 0;
  if(sigaction(SIGUSR1, &sigact, NULL) == -1) {
    perror("Error installing signal handler for USR1");
    exit(EXIT_FAILURE);
  }
#ifdef DEBUG_MESSAGES
  else {
    fprintf(stderr, "USR1 handler successfully installed\n");
  }
#endif /* DEBUG_MESSAGES */
  if(sigaction(SIGUSR2, &sigact, NULL) == -1) {
    perror("Error installing signal handler for USR2");
    exit(EXIT_FAILURE);
  }
#ifdef DEBUG_MESSAGES
  else {
    fprintf(stderr, "USR2 handler successfully installed\n");
  }
#endif /* DEBUG_MESSAGES */
  if(sigaction(SIGINT, &sigact, NULL) == -1) {
    perror("Error installing signal handler for INT");
    exit(EXIT_FAILURE);
  }
#ifdef DEBUG_MESSAGES
  else {
    fprintf(stderr, "INT handler successfully installed\n");
  }
#endif /* DEBUG_MESSAGES */
  /* Signal processing loop */
  while(1) 
  {
    signal_number = 0;
    pause();
    if(signal_number == SIGUSR1) 
    {  /* Page fault */
#ifdef DEBUG_MESSAGES
      fprintf(stderr, "Processed SIGUSR1\n");
#endif /* DEBUG_MESSAGES */
      signal_number = 0;
    }
    else if(signal_number == SIGUSR2) 
    {     /* PT dump */
#ifdef DEBUG_MESSAGES
      fprintf(stderr, "Processed SIGUSR2\n");
#endif /* DEBUG_MESSAGES */
      signal_number = 0;
    }
    else if(signal_number == SIGINT) 
    {
#ifdef DEBUG_MESSAGES
      fprintf(stderr, "Processed SIGINT\n");
#endif /* DEBUG_MESSAGES */
    }
  }
  return 0;
}