void main(void) { memset(edata, 0, (ulong)end-(ulong)edata); conf.nmach = 1; machinit(); confinit(); xinit(); trapinit(); mmuinit(); plan9iniinit(); hwintrinit(); clockinit(); timerinit(); console(); quotefmtinstall(); printinit(); cpuidprint(); print("\nPlan 9 from Bell Labs\n"); procinit0(); initseg(); timersinit(); links(); chandevreset(); pageinit(); swapinit(); sharedseginit(); fpsave(&initfp); initfp.fpscr = 0; userinit(); schedinit(); }
void threadmain(int argc, char **argv) { char *net; //extern long _threaddebuglevel; //_threaddebuglevel = 1<<20; /* DBGNOTE */ rfork(RFNOTEG); ARGBEGIN{ case 'D': chatty9p++; break; case 'n': setexecname(EARGF(usage())); break; }ARGEND switch(argc){ default: usage(); case 0: net = "/net"; break; case 1: net = argv[0]; break; } quotefmtinstall(); initfs(); threadpostmountsrv(&fs, nil, net, MBEFORE); threadexits(nil); }
void main(int argc, char **argv) { RSApriv *key; Attr *a; char *s; fmtinstall('A', _attrfmt); fmtinstall('B', mpfmt); quotefmtinstall(); ARGBEGIN{ default: usage(); }ARGEND if(argc > 1) usage(); if((key = getkey(argc, argv, 0, &a)) == nil) sysfatal("%r"); s = smprint("key %A size=%d ek=%lB n=%lB\n", a, mpsignif(key->pub.n), key->pub.ek, key->pub.n); if(s == nil) sysfatal("smprint: %r"); write(1, s, strlen(s)); exits(nil); }
void main(int argc, char **argv) { char *patternpath; ARGBEGIN { case 'd': debug++; break; } ARGEND; quotefmtinstall(); if(argc < 3) usage(); patternpath = argv[1]; readpatterns(patternpath); if(strcmp(argv[0], "add") == 0) exits(add(patternpath, argc-2, argv+2)); else if(strcmp(argv[0], "check") == 0) exits(check(argc-2, argv+2)); else usage(); }
void main(int argc, char **argv) { DSApriv *key; Attr *a; char *s; fmtinstall('A', _attrfmt); fmtinstall('B', mpfmt); quotefmtinstall(); ARGBEGIN{ default: usage(); }ARGEND if(argc > 1) usage(); if((key = getdsakey(argc, argv, 0, &a)) == nil) sysfatal("%r"); s = smprint("key %A p=%lB q=%lB alpha=%lB key=%lB\n", a, key->pub.p, key->pub.q, key->pub.alpha, key->pub.key); if(s == nil) sysfatal("smprint: %r"); write(1, s, strlen(s)); exits(nil); }
void main(int argc, char **argv) { Avlwalk *w; Biobuf bout; Entry *e; quotefmtinstall(); ARGBEGIN{ default: usage(); }ARGEND if(argc != 1) usage(); Binit(&bout, 1, OWRITE); db = opendb(argv[0]); w = avlwalk(db->avl); while(e = (Entry*)avlnext(w)) Bprint(&bout, "%q %q %luo %q %q %lud %lld\n", e->name, strcmp(e->name, e->d.name)==0 ? "-" : e->d.name, e->d.mode, e->d.uid, e->d.gid, e->d.mtime, e->d.length); if(Bterm(&bout) < 0) sysfatal("writing output: %r"); exits(nil); }
void main(int argc, char *argv[]) { char *opt, *p; char *enva[20]; int envc; if(coherence == nil) coherence = nofence; quotefmtinstall(); savestartup(argc, argv); /* set default root now, so either $EMU or -r can override it later */ if((p = getenv("INFERNO")) != nil || (p = getenv("ROOT")) != nil) strecpy(rootdir, rootdir+sizeof(rootdir), p); opt = getenv("EMU"); if(opt != nil && *opt != '\0') { enva[0] = "emu"; envc = tokenize(opt, &enva[1], sizeof(enva)-1) + 1; enva[envc] = 0; option(envc, enva, envusage); } option(argc, argv, usage); eve = strdup("inferno"); opt = "interp"; if(cflag) opt = "compile"; if(vflag) print("Inferno %s main (pid=%d) %s\n", VERSION, getpid(), opt); libinit(imod); }
AuthInfo* auth_proxy(int fd, AuthGetkey *getkey, char *fmt, ...) { int afd; char *p; va_list arg; AuthInfo *ai; AuthRpc *rpc; quotefmtinstall(); /* just in case */ va_start(arg, fmt); p = vsmprint(fmt, arg); va_end(arg); afd = open("/mnt/factotum/rpc", ORDWR); if(afd < 0){ werrstr("opening /mnt/factotum/rpc: %r"); free(p); return nil; } rpc = auth_allocrpc(afd); if(rpc == nil){ free(p); return nil; } ai = fauth_proxy(fd, rpc, getkey, p); free(p); auth_freerpc(rpc); close(afd); return ai; }
void main(void) { cgapost(0); mach0init(); options(); ioinit(); i8250console(); quotefmtinstall(); screeninit(); print("\nPlan 9\n"); trapinit0(); mmuinit0(); kbdinit(); i8253init(); cpuidentify(); meminit(); confinit(); archinit(); if(!isa20on()) panic("bootstrap didn't leave a20 address line enabled"); xinit(); if(i8237alloc != nil) i8237alloc(); trapinit(); printinit(); cpuidprint(); mmuinit(); fpsavealloc(); if(arch->intrinit) /* launches other processors on an mp */ arch->intrinit(); timersinit(); mathinit(); kbdenable(); if(arch->clockenable) arch->clockenable(); procinit0(); initseg(); if(delaylink){ bootlinks(); pcimatch(0, 0, 0); }else links(); conf.monitor = 1; chandevreset(); cgapost(0xcd); pageinit(); i8253link(); swapinit(); userinit(); active.thunderbirdsarego = 1; cgapost(0x99); schedinit(); }
void threadmain(int argc, char *argv[]) { int i, n; unsigned char score[VtScoreSize]; unsigned char *buf; VtConn *z; char *host; VtRoot root; fmtinstall('F', vtfcallfmt); fmtinstall('V', vtscorefmt); quotefmtinstall(); host = nil; ARGBEGIN{ case 'h': host = EARGF(usage()); break; default: usage(); break; }ARGEND if(argc == 0) usage(); buf = vtmallocz(VtMaxLumpSize); z = vtdial(host); if(z == nil) sysfatal("could not connect to server: %r"); if(vtconnect(z) < 0) sysfatal("vtconnect: %r"); for(i=0; i<argc; i++){ if(vtparsescore(argv[i], nil, score) < 0){ fprint(2, "cannot parse score '%s': %r\n", argv[i]); continue; } n = vtread(z, score, VtRootType, buf, VtMaxLumpSize); if(n < 0){ fprint(2, "could not read block %V: %r\n", score); continue; } if(n != VtRootSize){ fprint(2, "block %V is wrong size %d != 300\n", score, n); continue; } if(vtrootunpack(&root, buf) < 0){ fprint(2, "unpacking block %V: %r\n", score); continue; } print("%V: %q %q %V %d %V\n", score, root.name, root.type, root.score, root.blocksize, root.prev); } vthangup(z); threadexitsall(0); }
void main(int argc, char *argv[]) { int i; quotefmtinstall(); for(i = 1; i < argc; i++) { print("%q: %ud\n", argv[i], hash(argv[i])); } exits(nil); }
void formatinit(void) { quotefmtinstall(); // fmtinstall('Y', Yfmt); /* print channels */ fmtinstall('Z', Zfmt); /* print devices */ fmtinstall('G', Gfmt); /* print tags */ fmtinstall('T', Tfmt); /* print times */ // fmtinstall('E', eipfmt); /* print ether addresses */ fmtinstall('I', eipfmt); /* print ip addresses */ }
void main(int argc, char **argv) { int i, dostdin; char *p; Rune *r; Rune buf[2]; Binit(&bout, 1, OWRITE); fmtinstall('L', linefmt); quotefmtinstall(); tmacdir = unsharp("#9/tmac"); dostdin = 0; ARGBEGIN{ case 'i': dostdin = 1; break; case 'm': r = erunesmprint("%s/tmac.%s", tmacdir, EARGF(usage())); if(queueinputfile(r) < 0) fprint(2, "%S: %r\n", r); break; case 'r': p = EARGF(usage()); p += chartorune(buf, p); buf[1] = 0; _nr(buf, erunesmprint("%s", p+1)); break; case 'u': utf8 = 1; break; case 'v': verbose = 1; break; default: usage(); }ARGEND for(i=0; i<argc; i++){ if(strcmp(argv[i], "-") == 0) queuestdin(); else queueinputfile(erunesmprint("%s", argv[i])); } if(argc == 0 || dostdin) queuestdin(); run(); Bprint(&bout, "\n"); Bterm(&bout); exits(nil); }
// // open mailboxes of the form /pop/host/user or /apop/host/user // char* pop3mbox(Mailbox *mb, char *path) { char *f[10]; int nf, apop, ppop, popssl, apopssl, apoptls, popnotls, apopnotls, poptls; Pop *pop; quotefmtinstall(); popssl = strncmp(path, "/pops/", 6) == 0; apopssl = strncmp(path, "/apops/", 7) == 0; poptls = strncmp(path, "/poptls/", 8) == 0; popnotls = strncmp(path, "/popnotls/", 10) == 0; ppop = popssl || poptls || popnotls || strncmp(path, "/pop/", 5) == 0; apoptls = strncmp(path, "/apoptls/", 9) == 0; apopnotls = strncmp(path, "/apopnotls/", 11) == 0; apop = apopssl || apoptls || apopnotls || strncmp(path, "/apop/", 6) == 0; if(!ppop && !apop) return Enotme; path = strdup(path); if(path == nil) return "out of memory"; nf = getfields(path, f, nelem(f), 0, "/"); if(nf != 3 && nf != 4) { free(path); return "bad pop3 path syntax /[a]pop[tls|ssl]/system[/user]"; } pop = emalloc(sizeof(*pop)); pop->freep = path; pop->host = f[2]; if(nf < 4) pop->user = nil; else pop->user = f[3]; pop->ppop = ppop; pop->needssl = popssl || apopssl; pop->needtls = poptls || apoptls; pop->refreshtime = 60; pop->notls = popnotls || apopnotls; pop->thumb = initThumbprints("/sys/lib/tls/mail", "/sys/lib/tls/mail.exclude"); mb->aux = pop; mb->sync = pop3sync; mb->close = pop3close; mb->ctl = pop3ctl; mb->d = emalloc(sizeof(*mb->d)); return nil; }
UserPasswd* auth_getuserpasswd(AuthGetkey *getkey, char *fmt, ...) { AuthRpc *rpc; char *f[3], *p, *params; int fd; va_list arg; UserPasswd *up; up = nil; rpc = nil; params = nil; fd = open("/mnt/factotum/rpc", ORDWR); if(fd < 0) goto out; rpc = auth_allocrpc(fd); if(rpc == nil) goto out; quotefmtinstall(); /* just in case */ va_start(arg, fmt); params = vsmprint(fmt, arg); va_end(arg); if(params == nil) goto out; if(dorpc(rpc, "start", params, strlen(params), getkey) != ARok || dorpc(rpc, "read", nil, 0, getkey) != ARok) goto out; rpc->arg[rpc->narg] = '\0'; if(tokenize(rpc->arg, f, 2) != 2){ werrstr("bad answer from factotum"); goto out; } up = malloc(sizeof(*up)+rpc->narg+1); if(up == nil) goto out; p = (char*)&up[1]; strcpy(p, f[0]); up->user = p; p += strlen(p)+1; strcpy(p, f[1]); up->passwd = p; out: free(params); auth_freerpc(rpc); close(fd); return up; }
void main(int argc, char **argv) { char *file; file = nil; quotefmtinstall(); time0 = time(0); if(NPTR != BLKSZ/sizeof(void*)) sysfatal("unexpected pointer size"); ARGBEGIN{ case 'D': chatty9p++; break; case 'f': file = EARGF(usage()); break; case 'r': rdonly = 1; break; case 's': srvname = EARGF(usage()); break; case 'm': mtpt = EARGF(usage()); break; default: usage(); }ARGEND if(argc > 1) usage(); if(argc == 1) sdname = argv[0]; if(file){ if((fd = open(file, rdonly ? OREAD : ORDWR)) < 0) sysfatal("open %s: %r", file); } inquiry = estrdup9p(inquiry); tab[0].name = estrdup9p("data"); tab[0].inuse = 1; tab[0].mode = 0666; postmountsrv(&fs, srvname, mtpt, MBEFORE); exits(nil); }
void main(void) { extern char edata[], end[]; uint rev; okay(1); m = (Mach*)MACHADDR; memset(edata, 0, end - edata); /* clear bss */ machinit(); mmuinit1(); optionsinit("/boot/boot boot"); quotefmtinstall(); ataginit((Atag*)BOOTARGS); confinit(); /* figures out amount of memory */ xinit(); uartconsinit(); screeninit(); print("\nPlan 9 from Bell Labs\n"); rev = getfirmware(); print("firmware: rev %d\n", rev); if(rev < Minfirmrev){ print("Sorry, firmware (start.elf) must be at least rev %d (%s)\n", Minfirmrev, Minfirmdate); for(;;) ; } trapinit(); clockinit(); printinit(); timersinit(); cpuidprint(); archreset(); procinit0(); initseg(); links(); chandevreset(); /* most devices are discovered here */ pageinit(); swapinit(); userinit(); gpiomeminit(); schedinit(); assert(0); /* shouldn't have returned */ }
void threadmain(int argc, char **argv) { char args[Arglen]; char *as, *ae; int accel, pena, devid; int csps[] = { KbdCSP, PtrCSP, 0 }; quotefmtinstall(); pena = 1; ae = args+sizeof(args); as = seprint(args, ae, "kb"); ARGBEGIN{ case 'a': accel = strtol(EARGF(usage()), nil, 0); as = seprint(as, ae, " -a %d", accel); break; case 'd': usbdebug++; as = seprint(as, ae, " -d"); break; case 'k': as = seprint(as, ae, " -k"); pena = 0; break; case 'm': as = seprint(as, ae, " -m"); pena = 1; break; case 'N': devid = atoi(EARGF(usage())); /* ignore dev number */ USED(devid); break; case 'b': as = seprint(as, ae, " -b"); break; default: usage(); }ARGEND; rfork(RFNOTEG); fmtinstall('U', Ufmt); threadsetgrp(threadid()); if(pena == 0) csps[1] = 0; startdevs(args, argv, argc, matchdevcsp, csps, kbmain); threadexits(nil); }
int auth_respond(void *chal, uint nchal, char *user, uint nuser, void *resp, uint nresp, AuthGetkey *getkey, char *fmt, ...) { char *p, *s; va_list arg; int afd; AuthRpc *rpc; Attr *a; if((afd = open("/mnt/factotum/rpc", ORDWR)) < 0) return -1; if((rpc = auth_allocrpc(afd)) == nil){ close(afd); return -1; } quotefmtinstall(); /* just in case */ va_start(arg, fmt); p = vsmprint(fmt, arg); va_end(arg); if(p==nil || dorpc(rpc, "start", p, strlen(p), getkey) != ARok || dorpc(rpc, "write", chal, nchal, getkey) != ARok || dorpc(rpc, "read", nil, 0, getkey) != ARok){ free(p); close(afd); auth_freerpc(rpc); return -1; } free(p); if(rpc->narg < nresp) nresp = rpc->narg; memmove(resp, rpc->arg, nresp); if((a = auth_attr(rpc)) != nil && (s = _strfindattr(a, "user")) != nil && strlen(s) < nuser) strcpy(user, s); else if(nuser > 0) user[0] = '\0'; _freeattr(a); close(afd); auth_freerpc(rpc); return nresp; }
void main(void) { hwrpb = (Hwrpb*)0x10000000; hwrpb = (Hwrpb*)(KZERO|hwrpb->phys); arginit(); machinit(); options(); ioinit(); clockinit(); confinit(); archinit(); xinit(); memholes(); if(i8237alloc != nil) i8237alloc(); mmuinit(); if(arch->coreinit) arch->coreinit(); trapinit(); screeninit(); printinit(); /* it's now safe to print */ /* dumpopts(); /* DEBUG */ i8250console(); quotefmtinstall(); print("\nPlan 9\n"); cpuidprint(); if(arch->corehello) arch->corehello(); procinit0(); initseg(); timersinit(); links(); chandevreset(); pageinit(); swapinit(); savefpregs(&initfp); initfp.fpstatus = 0x68028000; userinit(); schedinit(); }
void main(void) { machinit(); trapinit(); quotefmtinstall(); confinit(); xinit(); mmuinit(); intrinit(); clockinit(); printinit(); screeninit(); ioinit(); doc("ioinit..."); ns16552install(); poolsizeinit(); doc("ns16552install..."); kbdinit(); doc("kbdinit..."); cacheinit(); doc("cacheinit..."); procinit(); doc("procinit..."); putphys(MID, 0x1F<<16); /* enable arbitration */ links(); doc("links"); chandevreset(); doc("chandevreset..."); print("\nInferno Operating System\n"); print("%s-%s \n\n",VERSION, conffile); print("JIT Compilation Mode = %d\n",cflag); userinit(); doc("userinit..."); /* clear pending processor interrupts */ putphys(PROCINTCLR, (~0<<17)|(1<<15)); print("berore schedinit\n"); schedinit(); }
/* * make factotum add wep keys to an 802.11 device */ int auth_wep(char *dev, char *fmt, ...) { AuthRpc *rpc; char *params, *p; int fd; va_list arg; int rv; rv = -1; if(dev == nil){ werrstr("no device specified"); return rv; } fd = open("/mnt/factotum/rpc", ORDWR); if(fd < 0) return rv; rpc = auth_allocrpc(fd); if(rpc != nil){ quotefmtinstall(); /* just in case */ va_start(arg, fmt); params = vsmprint(fmt, arg); va_end(arg); if(params != nil){ p = smprint("proto=wep %s", params); if(p != nil){ if(auth_rpc(rpc, "start", p, strlen(p)) == ARok && auth_rpc(rpc, "write", dev, strlen(dev)) == ARok) rv = 0; free(p); } free(params); } auth_freerpc(rpc); } close(fd); return rv; }
void threadmain(int argc, char **argv) { char *mnt, *srv, *as, *ae; char args[Arglen]; mnt = "/dev"; srv = nil; quotefmtinstall(); ae = args + sizeof args; as = seprint(args, ae, "serial"); ARGBEGIN{ case 'D': usbfsdebug++; break; case 'd': usbdebug++; as = seprint(as, ae, " -d"); break; case 'N': as = seprint(as, ae, " -N %s", EARGF(usage())); break; case 'm': mnt = EARGF(usage()); break; case 's': srv = EARGF(usage()); break; default: usage(); break; }ARGEND; rfork(RFNOTEG); fmtinstall('U', Ufmt); threadsetgrp(threadid()); usbfsinit(srv, mnt, &usbdirfs, MAFTER|MCREATE); startdevs(args, argv, argc, matchserial, nil, serialmain); threadexits(nil); }
Chalstate* auth_challenge(char *fmt, ...) { char *p; va_list arg; Chalstate *c; quotefmtinstall(); /* just in case */ va_start(arg, fmt); p = vsmprint(fmt, arg); va_end(arg); if(p == nil) return nil; c = mallocz(sizeof(*c), 1); if(c == nil){ free(p); return nil; } if((c->afd = open("/mnt/factotum/rpc", ORDWR)) < 0){ Error: auth_freechal(c); free(p); return nil; } if((c->rpc=auth_allocrpc(c->afd)) == nil || auth_rpc(c->rpc, "start", p, strlen(p)) != ARok || auth_rpc(c->rpc, "read", nil, 0) != ARok) goto Error; if(c->rpc->narg > sizeof(c->chal)-1){ werrstr("buffer too small for challenge"); goto Error; } memmove(c->chal, c->rpc->arg, c->rpc->narg); c->nchal = c->rpc->narg; free(p); return c; }
void main(void) { machinit(); options(); archinit(); quotefmtinstall(); confinit(); cpminit(); xinit(); poolsizeinit(); trapinit(); mmuinit(); printinit(); uartinstall(); serialconsole(); doc("screeninit"); screeninit(); doc("kbdinit"); kbdinit(); doc("clockinit"); clockinit(); doc("procinit"); procinit(); cpuidprint(); doc("links"); links(); doc("chandevreset"); chandevreset(); eve = strdup("inferno"); print("\nInferno %s\n", VERSION); print("Vita Nuova\n"); print("conf %s (%lud) jit %d\n\n",conffile, kerndate, cflag); doc("userinit"); userinit(); doc("schedinit"); schedinit(); }
void main(int argc, char **argv) { char *p, *f[10]; Biobuf bin, bout; int nf; ulong d, size; if(argc != 2) { fprint(2, "usage: cat mkfs-archive | touchfs date (in seconds)\n"); exits("usage"); } d = strtoul(argv[1], 0, 0); quotefmtinstall(); Binit(&bin, 0, OREAD); Binit(&bout, 1, OWRITE); while(p = Brdline(&bin, '\n')) { p[Blinelen(&bin)-1] = '\0'; if(strcmp(p, "end of archive") == 0) { Bprint(&bout, "end of archive\n"); exits(0); } nf = tokenize(p, f, nelem(f)); if(nf != 6) { fprint(2, "corrupt archive\n"); exits("notdone"); } Bprint(&bout, "%q %q %q %q %lud %q\n", f[0], f[1], f[2], f[3], d, f[5]); size = strtoul(f[5], 0, 0); Bpass(&bin, &bout, size); } fprint(2, "premature end of archive\n"); exits("notdone"); }
/* * Reconstruct original message, for error diagnostic */ void respondcmderror(Req *r, Cmdbuf *cb, char *fmt, ...) { int i; va_list arg; char *p, *e; char err[ERRMAX]; e = err+ERRMAX-10; va_start(arg, fmt); p = vseprint(err, e, fmt, arg); va_end(arg); p = seprint(p, e, ": \""); quotefmtinstall(); /* just in case */ for(i=0; i<cb->nf; i++){ if(i > 0) p = seprint(p, e, " "); p = seprint(p, e, "%q", cb->f[i]); } strcpy(p, "\""); respond(r, err); }
int main(int argc, char *argv[]) { quotefmtinstall(); print("hello world\n"); print("x: %x\n", 0x87654321); print("u: %u\n", 0x87654321); print("d: %d\n", 0x87654321); print("s: %s\n", "hi there"); print("q: %q\n", "hi i'm here"); print("c: %c\n", '!'); print("g: %g %g %g\n", 3.14159, 3.14159e10, 3.14159e-10); print("e: %e %e %e\n", 3.14159, 3.14159e10, 3.14159e-10); print("f: %f %f %f\n", 3.14159, 3.14159e10, 3.14159e-10); print("smiley: %C\n", (Rune)0x263a); print("%g %.18\n", 2e25, 2e25); print("%2.18g\n", 1.0); print("%f\n", 3.1415927/4); print("%d\n", 23); print("%i\n", 23); return 0; }
void main(void) { mmuinvalidate(); /* zero out bss */ memset(edata, 0, end-edata); /* point to Mach structure */ m = (Mach*)MACHADDR; memset(m, 0, sizeof(Mach)); m->ticks = 1; active.machs = 1; rs232power(1); quotefmtinstall(); iprint("\nPlan 9 bitsy kernel\n"); confinit(); xinit(); mmuinit(); machinit(); trapinit(); sa1110_uartsetup(1); dmainit(); screeninit(); printinit(); /* from here on, print works, before this we need iprint */ clockinit(); procinit0(); initseg(); links(); chandevreset(); pageinit(); swapinit(); userinit(); powerinit(); schedinit(); }
AuthInfo* fsauth_proxy(CFid *fid, AuthGetkey *getkey, char *fmt, ...) { char *p; va_list arg; AuthInfo *ai; AuthRpc *rpc; quotefmtinstall(); /* just in case */ va_start(arg, fmt); p = vsmprint(fmt, arg); va_end(arg); rpc = auth_allocrpc(); if(rpc == nil){ free(p); return nil; } ai = fsfauth_proxy(fid, rpc, getkey, p); free(p); auth_freerpc(rpc); return ai; }