void access_file() { int i; bytes_read = 0; bytes_write = 0; read_time = 0; write_time = 0; char buf[4096]; for(i = 0; i<N_ACCESSES; i++){ int rw = rand()%100 + 1; char file[256]; int fsize = gen_file(file); //printf("got file %s\n", file); clock_t start, stop; if(rw <= P_READS){ //read start = clock(); int fd = open(file, O_RDONLY); if(fd == -1){ printf("%d couldn't open %s\n", i, file); perror("error "); break; } int totalRead = 0; int numRead = read(fd, buf, 4096); if(numRead == 1) hits++; if(numRead == 0) misses++; if(numRead == -1) printf("read error\n"); //totalRead += numRead; //while(numRead > 0){ // numRead = read(fd, buf, 4096); // totalRead += numRead; //} stop = clock(); double time_e = (double)(stop-start); //printf("read %d of %d in %lf\n", totalRead, fsize, time_e); bytes_read+=fsize; read_time +=time_e; close(fd); } else{ //write start = clock(); int fd = open(file, O_WRONLY); if(fd == -1){ printf("couldn't open\n"); perror("error "); } int numWrite = fsize; //while(numWrite > 0){ numWrite -= write(fd, buf, 4096); //} stop = clock(); double time_e = (double)(stop-start); //printf("wrote %d in %lf\n", fsize, time_e); //bytes_write+=fsize; writes++; write_time+=time_e; close(fd); } } }
static void bhv_setTag(struct Behavior *bhv) { if (bhv->Object.Any._id) { // generics case struct Generic *gen = CAST(struct Generic*, bhv); if (bhv->id) cos_abort("generic '%s' at (%s,%d) has already an id", gen_name(gen), gen_file(gen), gen_line(gen)); if ( (bhv->Object.Any._id & COS_ID_TAGMSK) ) cos_abort("generic '%s' at (%s,%d) has invalid initialization", gen_name(gen), gen_file(gen), gen_line(gen)); bhv->id = bhv->Object.Any._id | bhv_tag(); bhv->Object.Any._id = 0; } else { // classes case
void gen_expr_str_str(expr *e) { FILE *f = gen_file(); stringlit *lit = e->bits.strlit.lit_at.lit; idt_printf("%sstring at %s\n", lit->wide ? "wide " : "", lit->lbl); gen_str_indent++; idt_print(); literal_print(f, e->bits.strlit.lit_at.lit->str, e->bits.strlit.lit_at.lit->len); gen_str_indent--; fputc('\n', f); }
//generate the html documents for this //site, in docs/0/, docs/1000/, ... directories void gen_docs() { int start_doc = siteno * filespersite; int end_doc = start_doc + filespersite; int i; char docname[200]; char subdir[10], cmd[30]; char progress[200]; sprintf(subdir, "0"); system ("mkdir -p docs/0/"); for (i = start_doc; i < end_doc; i++) { if (0 && i%100==0 ) //|| (i-start_doc > 20000)) { sprintf(progress, "echo 'writing doc %d' >> /scratch/report.txt",(i-start_doc)); system(progress); } if ((i % 5000) == 0) { printf("Writing doc %d\n", i - start_doc); sprintf(subdir, "%d", i); sprintf(cmd, "mkdir -p docs/%s/", subdir); system(cmd); } sprintf(docname,"docs/%s/%s", subdir,urls[i]+7); if ( 0 && i -start_doc >= 20800 ) { sprintf(progress, "echo 'writing doc %s' >> /scratch/report.txt",(char*)docname); system(progress); } gen_file(docname, (i-start_doc)); if ( 0 && i -start_doc >= 20800 ) { sprintf(progress, "echo 'DONE %s' >> /scratch/report.txt",(char*)docname); system(progress); } } }
int main(int argc, char**argv) { int ret = 1; if (argc < 2) { std::cerr << "No parameters given\n" << "Usage:\n" << "xml2ulxr [--gen-server]\n" << " [--gen-client]\n" << " [--gen-class=class-name]\n" << " [--gen-funcs=prefix]\n" << " [--file-name=filename.ext]\n" << " [--dest-dir=dest-path]\n" << " [--disable-timestamp\n" << "\n"; return 1; } std::vector<std::string> classes; for (int i = 1; i < argc; ++i) { std::string arg = argv[i]; if (arg == "--gen-server") gen_server = true; else if (arg == "--gen-client") gen_client = true; else if (arg.substr(0, 12) == "--gen-class=") classes.push_back(arg.substr(12)); else if (arg.substr(0, 12) == "--gen-funcs=") { funcsname = arg.substr(12); gen_funcs = true; } else if (arg.substr(0, 12) == "--file-name=") sourcename = arg.substr(12); else if (arg.substr(0, 11) == "--dest-dir=") destdir = arg.substr(11); else if (arg == "--disable-timestamp") GenerateMethod::setDateOutput(false); else { std::cerr << "Unknown option: " << arg << std::endl; return 1; } } if (sourcename.length() == 0) { std::cerr << "No source file given\n"; return 1; } std::FILE *fs; fs = std::fopen (sourcename.c_str(), "r"); if (fs == 0) { std::cerr << "File not readable: " << sourcename << std::endl; return 2; } char buffer[1000]; UlxrIdlParser parser; try { while (!feof(fs)) { unsigned readed = std::fread(buffer, 1, sizeof(buffer), fs); if (!parser.parse(buffer, readed, false)) { throw XmlException(parser.mapToFaultCode(parser.getErrorCode()), "Problem while parsing idl file", parser.getCurrentLineNumber(), parser.getErrorString(parser.getErrorCode())); } } ret = 0; } catch(std::exception &ex) { std::cerr << ex.what() << std::endl; ret = 1; } catch(...) { std::cerr << "Unexpected problem while parsing idl file\n"; ret = 1; } fclose(fs); if (ret != 0) return ret; try { for (unsigned ii = 0; ii < parser.numClasses(); ++ii) { // std::cout << "Class available: " << parser.getClass(ii).getName() << std::endl; if (classes.size() == 0) gen_file(parser.getClass(ii)); else { for (unsigned ic = 0; ic < classes.size(); ++ic) { if (classes[ic] == parser.getClass(ii).getName()) gen_file(parser.getClass(ii)); else std::cout << "Skipping class: " << parser.getClass(ii).getName() << std::endl; } } } gen_functions(parser.getFunctions()); ret = 0; } catch(std::exception &ex) { std::cerr << ex.what() << std::endl; ret = 2; } catch(...) { std::cerr << "Unexpected problem while generating mock files\n"; ret = 2; } return ret; }
void gen_expr_style_str(expr *e) { literal_print(gen_file(), e->bits.strlit.lit_at.lit->str, e->bits.strlit.lit_at.lit->len); }