/* * Read patterns from file. */ void patfile(char *fn) { struct stat st; struct expr *e = NULL; char *cp; struct iblok *ip; size_t sz, len; int nl; if ((ip = ib_open(fn, 0)) == NULL || fstat(ip->ib_fd, &st) < 0) { fprintf(stderr, "%s: can't open %s\n", progname, fn); exit(2); } if (e0) { if (sus) for (e = e0; e->e_nxt; e = e->e_nxt); else e0 = NULL; } while (cp = NULL, sz = 0, (len = ib_getlin(ip, &cp, &sz, srealloc)) > 0) { if ((nl = cp[len - 1] == '\n') != 0) cp[len - 1] = '\0'; addpat(&e, cp, len - nl, nl); } ib_close(ip); }
/* * Open a RDMA device. */ int rd_open(DEVICE *dev, int trans, int max_send_wr, int max_recv_wr) { #if 0 /* Send request to client */ if (is_client()) client_send_request(); #endif /* Clear structure */ memset(dev, 0, sizeof(*dev)); /* Set transport type and maximum work request parameters */ #if 0 dev->trans = trans; #endif dev->max_send_wr = max_send_wr; dev->max_recv_wr = max_recv_wr; /* Open device */ #if 0 if (Req.use_cm) cm_open(dev); else #endif int r = ib_open(dev); if (r != 0) { return r; } /* Request CQ notification if not polling */ if (!Req.poll_mode) { if (ibv_req_notify_cq(dev->cq, 0) != 0) return error(SYS, "failed to request CQ notification"); } return r; }
int main(int argc, char **argv) { int i; int n1, n2; off_t top2 = 0, bot2; char *arg = 0, *x; progname = basename(argv[0]); setlocale(LC_COLLATE, ""); setlocale(LC_CTYPE, ""); mb_cur_max = MB_CUR_MAX; while (argc > 1 && argv[1][0] == '-') { if (argv[1][1] == '\0') break; switch (argv[1][1]) { case 'a': if (argv[1][2]) arg = &argv[1][2]; else if (argv[2]) { arg = argv[2]; argv++, argc--; } else arg = "3"; switch(*arg) { case '1': aflg |= 1; break; case '2': aflg |= 2; break; default: aflg |= 3; } break; case 'e': if (argv[1][2]) null = &argv[1][2]; else if (argv[2]) { null = argv[2]; argv++; argc--; } else usage(); break; case 't': if (argv[1][2]) { int n; next(sep1, &argv[1][2], n); sep2 = sep1; } else if (argv[2]) { int n; next(sep1, argv[2], n); sep2 = sep1; argv++, argc--; } else usage(); break; case 'o': if (argv[2] == NULL) usage(); arg = argv[1][2] ? &argv[1][2] : argv[2]; for (no = 0; olist = srealloc(olist, (no+1)*sizeof *olist), olistf = srealloc(olistf,(no+1)*sizeof *olistf), olist[no] = 0, olistf[no] = 0, arg; no++) { if (arg[0] == '1' && arg[1] == '.') { olistf[no] = F1; olist[no] = strtol(&arg[2], &x, 10); } else if (arg[0] == '2' && arg[1] == '.') { olist[no] = strtol(&arg[2], &x, 10); olistf[no] = F2; } else if (arg[0] == '0') { olistf[no] = JF; x = &arg[1]; } else break; while (*x == ' ' || *x == ',') x++; if (*x) arg = x; else { argc--; argv++; arg = argv[2]; } } if (no == 0) { fprintf(stderr, "%s: invalid file number (%s) " "for -o\n", progname, arg); exit(2); } break; case 'j': if (argv[2] == NULL) usage(); if (argv[1][2] == '1') j1 = atoi(argv[2]); else if (argv[1][2] == '2') j2 = atoi(argv[2]); else j1 = j2 = atoi(argv[2]); argc--; argv++; break; case '1': if (argv[1][2]) arg = &argv[1][2]; else if (argv[2]) { arg = argv[2]; argv++, argc--; } else usage(); j1 = atoi(arg); break; case '2': if (argv[1][2]) arg = &argv[1][2]; else if (argv[2]) { arg = argv[2]; argv++, argc--; } else usage(); j2 = atoi(arg); break; case 'v': if (argv[1][2]) arg = &argv[1][2]; else if (argv[2]) { arg = argv[2]; argv++, argc--; } else usage(); if (*arg == '1') vflg |= 1; else if (*arg == '2') vflg |= 2; break; } argc--; argv++; } for (i = 0; i < no; i++) olist[i]--; /* 0 origin */ if (argc != 3) usage(); j1--; j2--; /* everyone else believes in 0 origin */ s1 = ppi(F1, j1); s2 = ppi(F2, j2); if (argv[1][0] == '-' && argv[1][1] == '\0') f[F1] = ib_alloc(0, 0); else if ((f[F1] = ib_open(argv[1], 0)) == NULL) error("can't open ", argv[1]); if (argv[2][0] == '-' && argv[2][1] == '\0') f[F2] = ib_alloc(0, 0); else if ((f[F2] = ib_open(argv[2], 0)) == NULL) error("can't open ", argv[2]); #define get1() n1=input(F1) #define get2() n2=input(F2) get1(); bot2 = ib_seek(f[F2], 0, SEEK_CUR); get2(); while(n1>=0 && n2>=0 || (aflg|vflg)!=0 && (n1>=0||n2>=0)) { if(n1>=0 && n2>=0 && comp()>0 || n1<0) { if(aflg&2||vflg&2) output(0, n2); bot2 = ib_seek(f[F2], 0, SEEK_CUR); get2(); } else if(n1>=0 && n2>=0 && comp()<0 || n2<0) { if(aflg&1||vflg&1) output(n1, 0); get1(); } else { /*(n1>=0 && n2>=0 && comp()==0)*/ while(n2>=0 && comp()==0) { if(vflg==0) output(n1, n2); top2 = ib_seek(f[F2], 0, SEEK_CUR); get2(); } ib_seek(f[F2], bot2, SEEK_SET); get2(); get1(); for(;;) { if(n1>=0 && n2>=0 && comp()==0) { if(vflg==0) output(n1, n2); get2(); } else if(n1>=0 && n2>=0 && comp()<0 || n2<0) { ib_seek(f[F2], bot2, SEEK_SET); get2(); get1(); } else { /*(n1>=0 && n2>=0 && comp()>0 || n1<0)*/ ib_seek(f[F2], top2, SEEK_SET); bot2 = top2; get2(); break; } } } } return(0); }
int main(int argc, char **argv) { int c; char *termtype; #ifdef USE_TERMCAP char termcap[2048]; #endif struct iblok *f; progname = basename(argv[0]); setlocale(LC_CTYPE, ""); mb_cur_max = MB_CUR_MAX; termtype = getenv("TERM"); if (termtype == NULL || (progname[0] == 'c' && !isatty(1))) termtype = "lpr"; while ((c=getopt(argc, argv, "it:T:?")) != EOF) switch(c) { case 't': case 'T': /* for nroff compatibility */ termtype = optarg; break; case 'i': iflag = 1; break; default: fprintf(stderr, "Usage: %s [ -i ] [ -tTerm ] file...\n", progname); exit(1); } #ifndef USE_TERMCAP setupterm(termtype, 1, &c); if (c < 0) fprintf(stderr,"trouble reading termcap"); if (c <= 0) termtype = "dumb"; #else /* USE_TERMCAP */ switch (tgetent(termcap, termtype)) { case 1: break; default: fprintf(stderr,"trouble reading termcap"); /*FALLTHRU*/ case 0: strcpy(termcap, "dumb:os:col#80:cr=^M:sf=^J:am:"); } initcap(); #endif /* USE_TERMCAP */ if ( (over_strike && enter_bold_mode==NULL ) || (transparent_underline && enter_underline_mode==NULL && underline_char==NULL)) must_overstrike = 1; initbuf(); if (optind == argc) filtr(ib_alloc(0, 0)); else for (; optind<argc; optind++) { f = ib_open(argv[optind], 0); if (f == NULL) { perror(argv[optind]); exit(1); } else { filtr(f); ib_close(f); } } exit(0); }