Annotation of researchv10dc/ipc/perf/timingd.c, revision 1.1.1.1

1.1       root        1: #include <stdio.h>
                      2: #include <sys/ioctl.h>
                      3: main()
                      4: {
                      5:        struct passfd pass;
                      6:        int fd, nfd;
                      7:        char c;
                      8:        extern int errno;
                      9: 
                     10:        if((fd=domount("quux"))<0)
                     11:                exit(errno);
                     12:        fprintf(stderr, "domount(quux) returns %d\n", fd);
                     13:        for(;;) {
                     14:                if (ioctl(fd, FIORCVFD, &pass)<0) {
                     15:                        close(fd);
                     16:                        exit(2);
                     17:                }
                     18:                fprintf(stderr, "ioctl(fd, FIORCVFD, &pass) returns %d\n",pass.fd);
                     19:                nfd = pass.fd;
                     20:                (void)ioctl(nfd, FIOACCEPT, &pass);
                     21:                fprintf(stderr, "ioctl(fd, FIOACCEPT, &pass) returned\n");
                     22:                read(nfd, &c, 1);
                     23:                close(nfd);
                     24:        }
                     25: }
                     26: 
                     27: domount(name)
                     28:        char *name;
                     29: {
                     30:        int pfd[2];
                     31:        extern int conn_ld;
                     32:        
                     33:        if (pipe(pfd) < 0)
                     34:                return -1;
                     35:        if (ioctl(pfd[1], FIOPUSHLD, &conn_ld) < 0)
                     36:                return -1;
                     37: 
                     38:        /* mount */
                     39:        if (fmount(3, pfd[1], name, 0) < 0)
                     40:                return -1;
                     41:        close(pfd[1]);
                     42:        return(pfd[0]);
                     43: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.