Exemplo n.º 1
0
static int ltransexpr(FILE *outfile, const LSYS *lsys, const TRANSSYS *transsys, const char *symbol_name, unsigned int rndseed, unsigned long num_timesteps, unsigned long output_period)
{
  LSYS_STRING *lstr, *dstr;
  unsigned long t;
  int symbol_index = -2;  /* initialiser pacifies -Wall */
  int return_value;

  if (symbol_name)
  {
    symbol_index = find_symbol_index_by_name(lsys, symbol_name);
    if (symbol_index == NO_INDEX)
    {
      fprintf(stderr, "no symbol \"%s\" in lsys \"%s\"\n", symbol_name, lsys->name);
      return (-1);
    }
  }
  else
  {
    symbol_index = NO_INDEX;
  }
  if (transsys)
  {
    fprint_header(outfile, lsys, transsys);
  }
  ulong_srandom(rndseed);
  lstr = axiom_string(lsys);
  for (t = 0; t < num_timesteps; t++)
  {
    return_value = lsys_string_expression(lstr);
    if (return_value != 0)
    {
      free_lsys_string(lstr);
      return (-1);
    }
    return_value = lsys_string_diffusion(lstr);
    if (return_value != 0)
    {
      free_lsys_string(lstr);
      return (-1);
    } 
    dstr = derived_string(lstr);
    if ((t % output_period) == 0)
    {
      fprint_lstr_table(outfile, lstr, transsys, symbol_index, t);
    }
    free_lsys_string(lstr);
    lstr = dstr;
  }
  free_lsys_string(lstr);
  return (0);
}
Exemplo n.º 2
0
void fprint_data(FILE *f, char *pkt)
{

    int len = get_packet_entries(pkt);

    fprint_header(f, pkt);
    pkt += HEADER_DIM;
    fprint_bloom(f, pkt);
    pkt += MADN_BLOOM_DIM;
    fprint_dataid(f, pkt);
    pkt += DATAID_DIM;
    fprint_field_8(f, pkt, len);

}
Exemplo n.º 3
0
void fprint_leech(FILE *f, char *pkt)
{
    int i;
    int len = get_packet_entries(pkt);

    fprint_header(f, pkt);
    pkt += HEADER_DIM;
    fprint_bloom(f, pkt);
    pkt += MADN_BLOOM_DIM;
    for (i = 0; i < len; i++)
    {
        fprint_req(f, pkt+(i * sizeof(MADN_DATA_REQUEST)));
    }
}
Exemplo n.º 4
0
int
main (int argc, char **argv)
{
  char *in_prefix = NULL;
  char *in_dir = NULL;
  char *out_dir = NULL;

  /*-----------------------------------------------------------------
   *  Check the command line input; get file name or directory name
   *-----------------------------------------------------------------*/
  {
    ht_args_st* args = parse_command_line ( argc, argv);

    if ( !args )
      {
        fprintf (stderr, " ERROR in HydroCommandLine: HydroTrend Aborted \n\n");
        exit (EXIT_FAILURE);
      }

    in_prefix = args->in_file;
    in_dir = args->in_dir;
    out_dir = args->out_dir;

    free( args );
  }

  fprint_header ( stdout );
  fprint_current_time ( stdout, "Start" );

  {
    ht_state *s = NULL;

    s = ht_initialize (in_dir, in_prefix, out_dir );

    BMI_HYDROTREND_Update_until (s, 10.5);

    BMI_HYDROTREND_Finalize (s);
  }

  fprint_current_time( stdout, "Stop" );
  fprint_footer ( stdout );

  free( in_prefix );
  free( in_dir );
  if (out_dir)
    free (out_dir);

  return EXIT_SUCCESS;
}
Exemplo n.º 5
0
int main(int argc, char* argv[])
{
    struct stats st, st_prev;
    struct ext_stats ext_st;
    unsigned long long interval;
    char *logfile = LOG_FILE;
    int speed = -1, duplex = -1;
    

    /* Usage: ./sysmon [real-time logging switch] [log filename] [print flag] (netif speed) (netif duplex)
       netif duplex takes C_DUPLEX_HALF=1 or C_DUPLEX_FULL=2 */
    
    if (2 <= argc)      realtime_logging = (strcmp("1", argv[1]) == 0);
    if (3 <= argc)      logfile = argv[2];
    if (4 <= argc && (strncmp("0x", argv[3], 2) == 0))
        print_flag = (int)strtol(argv[3], NULL, 0); /* Expecting 0x... */
    if (5 <= argc)      speed = atoi(argv[4]);
    if (6 <= argc)      duplex = atoi(argv[5]);

    printf ("realtime logging : %s\n", realtime_logging ? "enabled" : "disabled");
    printf ("log file         : %s\n", logfile);
    printf ("print flag       : 0x%08x\n", print_flag);
    printf ("speed            : %d\n", speed);
    printf ("duplex           : %d\n", duplex);

    #ifndef DEBUG
    if ((fp = fopen(logfile, "w+")) == NULL) {
        fprintf(stderr, "opening logfile failed\n");
        exit(EXIT_FAILURE);
    }
    #else
    fp = stdout;
    #endif


    /* Initialization */
    signal(SIGINT, signal_callback_handler); /* Set up a signal handler */
    read_stats(&base_stats);
    clock_gettime(CLOCK_MONOTONIC, &base_time);
    /* Obtain speed/duplex info for eth0 */
    read_net_dev(&st.net, 1);
    read_if_info(&st.net, 1); 
    /* VMs on Google Clouds do not let you read files under /sys/class/net/eth0/
       See also: http://unix.stackexchange.com/questions/77750/checking-the-speed-of-active-network-connections */
    base_stats.net.speed = (0 < speed) ? speed : st.net.speed;
    base_stats.net.duplex = (0 < duplex) ? duplex : st.net.duplex;
    st = st_prev = base_stats;
    /* Initialize variables for min/max/mean/var computation */
    num_samples = 1;
    set_max_ext_stats(&min);
    memset((void *)&max, 0x00, sizeof(struct ext_stats));
    memset((void *)&mean, 0x00, sizeof(struct ext_stats));
    memset((void *)&var, 0x00, sizeof(struct ext_stats));
    /* For real-time logging */
    if (realtime_logging) fprint_header(fp, print_flag);
    /* Get HZ */
    get_HZ();

    while (1) { /* Anyways, we record stats for average computation */
        usleep(INTERVAL_SEC * SEC_TO_MSEC);
        read_stats(&st);
        interval = get_interval(st_prev.uptime, st.uptime);

        /* Compute extended stats from raw stats */
        compute_ext_stats(interval, &st, &st_prev, &ext_st);
        update_ext_stats(num_samples, &ext_st, &min, &max, &mean, &var);
        if (realtime_logging) fprint_stats(fp, print_flag, &st, &ext_st);
        
        /* Update stats (min/max/mean/var) for ext_stats */
        st_prev = st;
        num_samples++;
    }

    /* Program never gets here */
    printf("Waiting for the SIGINT signal\n");
    pause();

    return EXIT_SUCCESS;
}
Exemplo n.º 6
0
void fprint_beacon(FILE *f, char *pkt)
{
    fprint_header(f, pkt);
    pkt += HEADER_DIM;
    fprint_bloom(f, pkt);
}