int main (int argv, char **argc) { btest=(double*)malloc(sizeof(double)*IDA); atest=(double*)malloc(sizeof(double)*IDA); #ifdef __NVCUDA__ acc_init( acc_device_nvcuda ); #endif #ifdef __NVOPENCL__ acc_init( acc_device_nvocl ); //acc_list_devices_spec( acc_device_nvocl ); #endif printf(" *******************************************************\n"); delaylength = 500; innerreps = 100; // GENERATE REFERENCE TIME // refer(); // TEST PRIVATE //estprivnew(); // TEST FIRSTPRIVATE //estfirstprivnew(); #ifdef OMPVER2 // TEST COPYPRIVATE / //estcopyprivnew(); #endif //TEST COPYIN copyintest(); // TEST COPYOUT copyouttest(); // TEST CREATE createtest(); // TEST REDUCTION reductiontest(); // TEST REDUCTION kerneltest(); // TEST PRIVATE // privatetest(); delaylength = 500; innerreps = 100; }
int main(int argc, char *argv[]) { int i, currentarg; DIR *dir = NULL; struct dirent *di = NULL; PARAMS p; initparams(&p); /* early check for debug and config parameter */ if (argc > 1) { for (currentarg=1; currentarg<argc; currentarg++) { if ((strcmp(argv[currentarg],"-D")==0) || (strcmp(argv[currentarg],"--debug")==0)) { debug = 1; } else if (strcmp(argv[currentarg],"--config")==0) { if (currentarg+1<argc) { strncpy_nt(p.cfgfile, argv[currentarg+1], 512); if (debug) printf("Used config file: %s\n", p.cfgfile); currentarg++; continue; } else { printf("Error: File for --config missing.\n"); return 1; } } } } /* load config if available */ if (!loadcfg(p.cfgfile)) { return 1; } if (!ibwloadcfg(p.cfgfile)) { return 1; } configlocale(); strncpy_nt(p.interface, "default", 32); strncpy_nt(p.definterface, cfg.iface, 32); strncpy_nt(p.nick, "none", 32); /* init dirname */ strncpy_nt(p.dirname, cfg.dbdir, 512); /* parse parameters, maybe not the best way but... */ for (currentarg=1; currentarg<argc; currentarg++) { if (debug) printf("arg %d: \"%s\"\n",currentarg,argv[currentarg]); if (strcmp(argv[currentarg],"--longhelp")==0) { showlonghelp(&p); return 0; } else if ((strcmp(argv[currentarg],"-?")==0) || (strcmp(argv[currentarg],"--help")==0)) { showhelp(&p); return 0; } else if ((strcmp(argv[currentarg],"-i")==0) || (strcmp(argv[currentarg],"--iface")==0)) { if (currentarg+1<argc) { strncpy_nt(p.interface, argv[currentarg+1], 32); p.defaultiface = 0; if (debug) printf("Used interface: %s\n", p.interface); currentarg++; continue; } else { printf("Error: Interface for -i missing.\n"); return 1; } } else if (strcmp(argv[currentarg],"--config")==0) { /* config has already been parsed earlier so nothing to do here */ currentarg++; continue; } else if ((strcmp(argv[currentarg],"--nick"))==0) { if (currentarg+1<argc) { strncpy_nt(p.nick, argv[currentarg+1], 32); if (debug) printf("Used nick: %s\n", p.nick); currentarg++; continue; } else { printf("Error: Nick for --nick missing.\n"); return 1; } } else if ((strcmp(argv[currentarg],"--style"))==0) { if (currentarg+1<argc && isdigit(argv[currentarg+1][0])) { if (cfg.ostyle > 4 || cfg.ostyle < 0) { printf("Error: Invalid style parameter \"%d\" for --style.\n", cfg.ostyle); printf(" Valid parameters:\n"); printf(" 0 - a more narrow output\n"); printf(" 1 - enable bar column if available\n"); printf(" 2 - average traffic rate in summary and weekly outputs\n"); printf(" 3 - average traffic rate in all outputs if available\n"); printf(" 4 - disable terminal control characters in -l / --live\n"); return 1; } cfg.ostyle = atoi(argv[currentarg+1]); if (debug) printf("Style changed: %d\n", cfg.ostyle); currentarg++; continue; } else { printf("Error: Style parameter for --style missing.\n"); printf(" Valid parameters:\n"); printf(" 0 - a more narrow output\n"); printf(" 1 - enable bar column if available\n"); printf(" 2 - average traffic rate in summary and weekly outputs\n"); printf(" 3 - average traffic rate in all outputs if available\n"); printf(" 4 - disable terminal control characters in -l / --live\n"); return 1; } } else if ((strcmp(argv[currentarg],"--dbdir"))==0) { if (currentarg+1<argc) { strncpy_nt(p.dirname, argv[currentarg+1], 512); if (debug) printf("DatabaseDir: \"%s\"\n", p.dirname); currentarg++; continue; } else { printf("Error: Directory for --dbdir missing.\n"); return 1; } } else if ((strcmp(argv[currentarg],"--locale"))==0) { if (currentarg+1<argc) { setlocale(LC_ALL, argv[currentarg+1]); if (debug) printf("Locale: \"%s\"\n", argv[currentarg+1]); currentarg++; continue; } else { printf("Error: Locale for --locale missing.\n"); return 1; } } else if (strcmp(argv[currentarg],"--create")==0) { p.create=1; p.query=0; if (debug) printf("Creating database...\n"); } else if ((strcmp(argv[currentarg],"-u")==0) || (strcmp(argv[currentarg],"--update")==0)) { p.update=1; p.query=0; if (debug) printf("Updating database...\n"); } else if (strcmp(argv[currentarg],"--importdb")==0) { if (currentarg+1<argc) { p.import=1; strncpy_nt(p.filename, argv[currentarg+1], 512); if (debug) printf("Used import file: %s\n", p.filename); currentarg++; continue; } else { printf("Error: File parameter for --importdb missing.\n"); return 1; } } else if ((strcmp(argv[currentarg],"-q")==0) || (strcmp(argv[currentarg],"--query")==0)) { p.query=1; } else if ((strcmp(argv[currentarg],"-D")==0) || (strcmp(argv[currentarg],"--debug")==0)) { debug=1; } else if ((strcmp(argv[currentarg],"-d")==0) || (strcmp(argv[currentarg],"--days")==0)) { cfg.qmode=1; } else if ((strcmp(argv[currentarg],"-m")==0) || (strcmp(argv[currentarg],"--months")==0)) { cfg.qmode=2; } else if ((strcmp(argv[currentarg],"-t")==0) || (strcmp(argv[currentarg],"--top10")==0)) { cfg.qmode=3; } else if ((strcmp(argv[currentarg],"-s")==0) || (strcmp(argv[currentarg],"--short")==0)) { cfg.qmode=5; } else if ((strcmp(argv[currentarg],"-w")==0) || (strcmp(argv[currentarg],"--weeks")==0)) { cfg.qmode=6; } else if ((strcmp(argv[currentarg],"-h")==0) || (strcmp(argv[currentarg],"--hours")==0)) { cfg.qmode=7; } else if ((strcmp(argv[currentarg],"--exportdb")==0) || (strcmp(argv[currentarg],"--dumpdb")==0)) { cfg.qmode=4; } else if (strcmp(argv[currentarg],"--oneline")==0) { cfg.qmode=9; } else if (strcmp(argv[currentarg],"--xml")==0) { if (currentarg+1<argc && argv[currentarg+1][0]!='-') { p.xmlmode = argv[currentarg+1][0]; if (strlen(argv[currentarg+1])!=1 || strchr("ahdmt", p.xmlmode)==NULL) { printf("Error: Invalid mode parameter \"%s\" for --xml.\n", argv[currentarg+1]); printf(" Valid parameters:\n"); printf(" a - all (default)\n"); printf(" h - only hours\n"); printf(" d - only days\n"); printf(" m - only months\n"); printf(" t - only top 10\n"); return 1; } currentarg++; } cfg.qmode=8; } else if (strcmp(argv[currentarg],"--json")==0) { if (currentarg+1<argc && argv[currentarg+1][0]!='-') { p.jsonmode = argv[currentarg+1][0]; if (strlen(argv[currentarg+1])!=1 || strchr("ahdmt", p.jsonmode)==NULL) { printf("Error: Invalid mode parameter \"%s\" for --json.\n", argv[currentarg+1]); printf(" Valid parameters:\n"); printf(" a - all (default)\n"); printf(" h - only hours\n"); printf(" d - only days\n"); printf(" m - only months\n"); printf(" t - only top 10\n"); return 1; } currentarg++; } cfg.qmode=10; } else if (strcmp(argv[currentarg],"--savemerged")==0) { p.savemerged=1; } else if ((strcmp(argv[currentarg],"-ru")==0) || (strcmp(argv[currentarg],"--rateunit"))==0) { if (currentarg+1<argc && isdigit(argv[currentarg+1][0])) { if (cfg.rateunit > 1 || cfg.rateunit < 0) { printf("Error: Invalid parameter \"%d\" for --rateunit.\n", cfg.rateunit); printf(" Valid parameters:\n"); printf(" 0 - bytes\n"); printf(" 1 - bits\n"); return 1; } cfg.rateunit = atoi(argv[currentarg+1]); if (debug) printf("Rateunit changed: %d\n", cfg.rateunit); currentarg++; continue; } else { cfg.rateunit = !cfg.rateunit; if (debug) printf("Rateunit changed: %d\n", cfg.rateunit); } } else if (strcmp(argv[currentarg],"--enable")==0) { p.active=1; p.query=0; } else if ((strcmp(argv[currentarg],"-tr")==0) || (strcmp(argv[currentarg],"--traffic")==0)) { if (currentarg+1<argc && isdigit(argv[currentarg+1][0])) { cfg.sampletime=atoi(argv[currentarg+1]); currentarg++; p.traffic=1; p.query=0; continue; } p.traffic=1; p.query=0; } else if ((strcmp(argv[currentarg],"-l")==0) || (strcmp(argv[currentarg],"--live")==0)) { if (currentarg+1<argc && argv[currentarg+1][0]!='-') { if (!isdigit(argv[currentarg+1][0]) || p.livemode > 1 || p.livemode < 0) { printf("Error: Invalid mode parameter \"%s\" for -l / --live.\n", argv[currentarg+1]); printf(" Valid parameters:\n"); printf(" 0 - show packets per second (default)\n"); printf(" 1 - show transfer counters\n"); return 1; } p.livemode = atoi(argv[currentarg+1]); currentarg++; } p.livetraffic=1; p.query=0; } else if (strcmp(argv[currentarg],"--force")==0) { p.force=1; } else if (strcmp(argv[currentarg],"--cleartop")==0) { p.cleartop=1; } else if (strcmp(argv[currentarg],"--rebuildtotal")==0) { p.rebuildtotal=1; } else if (strcmp(argv[currentarg],"--disable")==0) { p.active=0; p.query=0; } else if (strcmp(argv[currentarg],"--testkernel")==0) { i=kerneltest(); return i; } else if (strcmp(argv[currentarg],"--showconfig")==0) { printcfgfile(); return 0; } else if (strcmp(argv[currentarg],"--delete")==0) { p.delete=1; p.query=0; } else if (strcmp(argv[currentarg],"--iflist")==0) {