void outputBlocks(const std::string& outDir, PermVec& blocks, BlockGroups& groups, int blockSize) { makeDirectory(outDir); std::string permsFile = outDir + "/genomes_permutations.txt"; std::string coordsFile = outDir + "/blocks_coords.txt"; std::string statsFile = outDir + "/coverage_report.txt"; PermVec outPerms = filterBySize(blocks, groups, blockSize, true); renumerate(outPerms); outputPermutation(outPerms, permsFile); outputCoords(outPerms, coordsFile); outputStatistics(outPerms, statsFile); }
int cyusb_open(void) { int fd1; int r; fd1 = open("/etc/cyusb.conf", O_RDONLY); if ( fd1 < 0 ) { printf("/etc/cyusb.conf file not found. Exiting\n"); return -1; } else { close(fd1); parse_configfile(); /* Parses the file and stores critical information inside exported data structures */ } r = libusb_init(NULL); if (r) { printf("Error in initializing libusb library...\n"); return -2; } r = renumerate(); return r; }
int main(int argc, char **argv) { if(argc <= 1) usage(); int ret = 0; libusb_init(NULL); libusb_device_handle *dev = libusb_open_device_with_vid_pid(NULL, 0x601a, 0x4760); if(dev == NULL) { printf("Cannot open device\n"); return -1; } if(libusb_claim_interface(dev, 0) != 0) { printf("Cannot claim interface\n"); libusb_close(dev); return -2; } enum { OPT_ADDR = 0x100, OPT_LENGTH, OPT_UPLOAD, OPT_CPUINFO, OPT_DOWNLOAD, OPT_START1, OPT_WAIT, OPT_RENUMERATE, OPT_START2, OPT_FLUSH_CACHES, OPT_S1_ADDR, OPT_STAGE1 }; unsigned long last_length = 0; unsigned long s1_addr = 0x80000000; while(1) { static struct option long_options[] = { {"help", no_argument, 0, 'h'}, {"cpuinfo", no_argument, 0, OPT_CPUINFO}, {"addr", required_argument, 0, OPT_ADDR}, {"length", required_argument, 0, OPT_LENGTH}, {"upload", required_argument, 0, OPT_UPLOAD}, {"download", required_argument, 0, OPT_DOWNLOAD}, {"start1", required_argument, 0, OPT_START1}, {"wait", required_argument, 0, OPT_WAIT}, {"renumerate", no_argument, 0, OPT_RENUMERATE}, {"start2", required_argument, 0, OPT_START2}, {"flush-caches", no_argument, 0, OPT_FLUSH_CACHES}, {"s1-addr", required_argument, 0, OPT_S1_ADDR}, {"stage1", required_argument, 0, OPT_STAGE1}, {0, 0, 0, 0} }; int c = getopt_long(argc, argv, "hv", long_options, NULL); char *end = 0; unsigned long param; if(c == OPT_ADDR || c == OPT_LENGTH || c == OPT_START1 || c == OPT_WAIT || c == OPT_S1_ADDR) { param = strtoul(optarg, &end, 0); if(*end) { printf("Invalid argument '%s'\n", optarg); ret = 1; break; } } if(c == -1) break; switch(c) { default: case -1: break; case 'h': usage(); break; case 'v': g_verbose = true; break; case OPT_ADDR: ret = jz_set_addr(dev, param); break; case OPT_LENGTH: last_length = param; ret = jz_set_length(dev, param); break; case OPT_UPLOAD: ret = jz_upload(dev, optarg, last_length); break; case OPT_DOWNLOAD: ret = jz_download(dev, optarg); break; case OPT_CPUINFO: ret = jz_cpuinfo(dev); break; case OPT_START1: ret = jz_start1(dev, param); break; case OPT_WAIT: if(g_verbose) printf("Wait for %lu seconds...\n", param); sleep(param); break; case OPT_RENUMERATE: ret = renumerate(&dev); break; case OPT_START2: ret = jz_start2(dev, param); break; case OPT_FLUSH_CACHES: ret = jz_flush_caches(dev); break; case OPT_S1_ADDR: s1_addr = param; break; case OPT_STAGE1: ret = jz_stage1(dev, s1_addr, optarg); break; } if(ret != 0) break; } if(optind != argc) { printf("Error: extra arguments on command line\n"); ret = 1; } libusb_close(dev); libusb_exit(NULL); return ret; }