int main (int argc, char const *const *argv) { stralloc sa = STRALLOC_ZERO ; int nl = 1 ; PROG = "s6-dirname" ; { subgetopt_t l = SUBGETOPT_ZERO ; for (;;) { register int opt = subgetopt_r(argc, argv, "n", &l) ; if (opt == -1) break ; switch (opt) { case 'n' : nl = 0 ; break ; default : strerr_dieusage(100, USAGE) ; } } argc -= l.ind ; argv += l.ind ; } if (!argc) strerr_dieusage(100, USAGE) ; if (!sadirname(&sa, argv[0], str_len(argv[0]))) strerr_diefu2sys(111, "get dirname of ", argv[0]) ; if (nl && !stralloc_catb(&sa, "\n", 1)) strerr_diefu2sys(111, "get dirname of ", argv[0]) ; if (allwrite(1, sa.s, sa.len) < sa.len) strerr_diefu1sys(111, "write to stdout") ; return 0 ; }
unsigned int fd_catn (int from, int to, unsigned int n) { unsigned int w = 0 ; if (n >= IOBUFFER_SIZE) { iobuffer b ; if (!iobuffer_init(&b, from, to)) return 0 ; while (n >= IOBUFFER_SIZE) { register int r = iobuffer_fill(&b) ; if (r <= 0) { iobuffer_finish(&b) ; if (!r) errno = EPIPE ; return w ; } if (iobuffer_flush(&b) < 0) { iobuffer_finish(&b) ; return w ; } n -= r ; w += r ; } iobuffer_finish(&b) ; } { char buf[n] ; unsigned int r = allread(from, buf, n) ; unsigned int v = 0 ; if (r) v = allwrite(to, buf, r) ; w += v ; } return w ; }
int main (int argc, char const *const *argv) { stralloc sa = STRALLOC_ZERO ; unsigned int n = 8 ; PROG = "s6-uniquename" ; { subgetopt_t l = SUBGETOPT_ZERO ; for (;;) { register int opt = subgetopt_r(argc, argv, "n:", &l) ; if (opt == -1) break ; switch (opt) { case 'n' : if (!uint0_scan(l.arg, &n)) usage() ; break ; default : usage() ; } } argc -= l.ind ; argv += l.ind ; } if (argc < 1) usage() ; if (!stralloc_cats(&sa, argv[0])) strerr_diefu1sys(111, "stralloc_cats") ; if ((n ? random_sauniquename(&sa, n) : sauniquename(&sa)) < 0) strerr_diefu1sys(111, "make unique name") ; if (!stralloc_catb(&sa, "\n", 1)) strerr_diefu1sys(111, "stralloc_cats") ; if (allwrite(1, sa.s, sa.len) < sa.len) strerr_diefu1sys(111, "write to stdout") ; return 0 ; }
int buffer_flush(buffer *s) { int p; p = s->p; if (!p) return 0; s->p = 0; return allwrite(s->op,s->fd,s->x,p); }
static int getit (void) { char fmt[TIMESTAMP+1] ; timestamp(fmt) ; fmt[TIMESTAMP] = '\n' ; if (allwrite(1, fmt, TIMESTAMP+1) < TIMESTAMP+1) strerr_diefu1sys(111, "write to stdout") ; return 0 ; }
int substdio_flush(substdio *s) { int p; p = s->p; if (!p) return 0; s->p = 0; return allwrite(s->op,s->fd,s->x,p); }
void write_flag(int flag, int value) { if (_lseek(fdw_command_CR, flag, SEEK_SET) < 0) { perror("Failed to seek"); exit(1); } written_value = (unsigned int) value; allwrite(fdw_command_CR, &written_value, 4); }
int main(int argc, char *argv[]) { int fd, fd1, rc, n=102400;//8383650; // double ttime; unsigned char buf[n]; clock_t cstart, cend; if (argc!=3) { fprintf(stderr, "Usage: %s devfile\n", argv[0]); exit(1); } fd = open(argv[1], O_WRONLY); if (fd < 0) { if (errno == ENODEV) fprintf(stderr, "(Maybe %s a read-only file?)\n", argv[1]); perror("Failed to open devfile"); exit(1); } fd1 = open(argv[2], O_RDONLY); cstart = clock(); while (1) { // Read from standard input = file descriptor 0 rc = read(fd1, buf, sizeof(buf)); printf("%d \n", rc); //if ((rc < 0) && (errno == EINTR)) //continue; if (rc < 0) { perror("allread() failed to read"); exit(1); } if (rc == 0) { fprintf(stderr, "Reached read EOF.\n"); cend = clock(); printf("Time taken = %.2f\n", 1.0*(cend - cstart));// / CLOCKS_PER_SEC); exit(0); } allwrite(fd, buf, rc); //ttime = (double)(cend - cstart);//CLOCKS_PER_SEC; } return(0); }
unsigned int randomegd_readnb (int s, char *x, unsigned int n) { unsigned int w = 0 ; while ((n - w) >= 255) { char c[2] = { 0x01, 0xFF } ; register unsigned char wtmp ; if (allwrite(s, c, 2) < 2) return w ; if (sanitize_read(fd_read(s, c+1, 1)) < 1) return w ; wtmp = allread(s, x + w, c[1]) ; w += wtmp ; if ((wtmp < (unsigned char)c[1]) || ((unsigned char)c[1] < 0xFF)) return w ; } if (w < n) { char c[2] = "\001" ; c[1] = n - w ; if (allwrite(s, c, 2) < 2) return w ; if (sanitize_read(fd_read(s, c+1, 1)) < 1) return w ; w += allread(s, x + w, c[1]) ; } return w ; }
unsigned int openwritenclose_at (int dirfd, char const *file, char const *s, unsigned int n) { register unsigned int r ; int fd = open_truncatb(dirfd, file) ; if (fd < 0) return 0 ; r = allwrite(fd, s, n) ; if ((r < n) || (fsync(fd) < 0)) { register int e = errno ; fd_close(fd) ; errno = e ; return r ; } fd_close(fd) ; return r ; }
int main (int argc, char const *const *argv, char const *const *envp) { int df = 0 ; PROG = "heredoc" ; { subgetopt_t l = SUBGETOPT_ZERO ; for (;;) { register int opt = subgetopt_r(argc, argv, "d", &l) ; if (opt == -1) break ; switch (opt) { case 'd' : df = 1 ; break ; default : dieusage() ; } } argc -= l.ind ; argv += l.ind ; } if (argc < 3) dieusage() ; { int fd[2] ; unsigned int fdr ; int pid ; if (!uint0_scan(argv[0], &fdr)) strerr_dieusage(100, USAGE) ; if (pipe(fd) < 0) strerr_diefu1sys(111, "pipe") ; pid = df ? doublefork() : fork() ; switch (pid) { case -1: strerr_diefu2sys(111, df ? "double" : "", "fork") ; case 0: { unsigned int len = str_len(argv[1]) ; PROG = "heredoc (child)" ; fd_close(fd[0]) ; if (allwrite(fd[1], argv[1], len) < len) strerr_diefu1sys(111, "allwrite") ; return 0 ; } } fd_close(fd[1]) ; if (fd_move((int)fdr, fd[0]) == -1) strerr_diefu2sys(111, "read on fd ", argv[0]) ; } pathexec_run(argv[2], argv+2, envp) ; strerr_dieexec(111, argv[2]) ; }
int main(int argc, char *argv[]) { int fd, fd1, rc, n = 102400; unsigned char buf[n]; if (argc!=3) { fprintf(stderr, "Usage: %s devfile\n", argv[0]); exit(1); } fd = open(argv[1], O_RDONLY); if (fd < 0) { if (errno == ENODEV) fprintf(stderr, "(Maybe %s a write-only file?)\n", argv[1]); perror("Failed to open devfile"); exit(1); } fd1 = open(argv[2], O_WRONLY | O_TRUNC | O_EXCL, S_IRUSR | S_IWUSR); while (1) { rc = read(fd, buf, sizeof(buf)); if ((rc < 0) && (errno == EINTR)) continue; if (rc < 0) { perror("allread() failed to read"); exit(1); } if (rc == 0) { fprintf(stderr, "Reached read EOF.\n"); exit(0); } // Write all data to standard output = file descriptor 1 // rc contains the number of bytes that were read. allwrite(fd1, buf, rc); } }
int buffer_put(buffer *s,const char *buf,unsigned int len) { unsigned int n; n = s->n; if (len > n - s->p) { if (buffer_flush(s) == -1) return -1; /* now s->p == 0 */ if (n < BUFFER_OUTSIZE) n = BUFFER_OUTSIZE; while (len > s->n) { if (n > len) n = len; if (allwrite(s->op,s->fd,buf,n) == -1) return -1; buf += n; len -= n; } } /* now len <= s->n - s->p */ byte_copy(s->x + s->p,len,buf); s->p += len; return 0; }
int substdio_put(substdio *s,const char *buf,int len) { int n; n = s->n; if (len > n - s->p) { if (substdio_flush(s) == -1) return -1; /* now s->p == 0 */ if (n < SUBSTDIO_OUTSIZE) n = SUBSTDIO_OUTSIZE; while (len > s->n) { if (n > len) n = len; if (allwrite(s->op,s->fd,buf,n) == -1) return -1; buf += n; len -= n; } } /* now len <= s->n - s->p */ byte_copy(s->x + s->p,len,buf); s->p += len; return 0; }
int openwritenclose_unsafe_internal (char const *fn, char const *s, unsigned int len, uint64 *dev, uint64 *ino, int dosync) { struct stat st ; int fd = open_trunc(fn) ; if (fd < 0) return 0 ; if (allwrite(fd, s, len) < len) goto fail ; if ((dev || ino) && (fstat(fd, &st) < 0)) goto fail ; if (dosync && (fd_sync(fd) < 0) && (errno != EINVAL)) goto fail ; fd_close(fd) ; if (dev) *dev = (uint64)st.st_dev ; if (ino) *ino = (uint64)st.st_ino ; return 1 ; fail: { register int e = errno ; fd_close(fd) ; unlink(fn) ; errno = e ; } return 0 ; }
int buffer_put(buffer *s, const char *buf, long long len) { long long n; if (!buf || len < 0) { errno = EINVAL; return -1; } n = s->n; if (len > n - s->p) { if (buffer_flush(s) == -1) return -1; /* now s->p == 0 */ if (n < BUFFER_OUTSIZE) n = BUFFER_OUTSIZE; while (len > s->n) { if (n > len) n = len; if (allwrite(s->op, s->fd, buf, n) == -1) return -1; buf += n; len -= n; } } /* now len <= s->n - s->p */ byte_copy(s->x + s->p, len, buf); s->p += len; return 0; }
int main (int argc, char const *const *argv) { tain_t deadline, tto ; ftrigr_t a = FTRIGR_ZERO ; uint16 id ; char pack[2] = " \n" ; PROG = "s6-ftrig-wait" ; { unsigned int t = 0 ; for (;;) { register int opt = subgetopt(argc, argv, "t:") ; if (opt == -1) break ; switch (opt) { case 't' : if (uint0_scan(subgetopt_here.arg, &t)) break ; default : strerr_dieusage(100, USAGE) ; } } if (t) tain_from_millisecs(&tto, t) ; else tto = tain_infinite_relative ; argc -= subgetopt_here.ind ; argv += subgetopt_here.ind ; } if (argc < 2) strerr_dieusage(100, USAGE) ; tain_now_g() ; tain_add_g(&deadline, &tto) ; if (!ftrigr_startf_g(&a, &deadline)) strerr_diefu1sys(111, "ftrigr_startf") ; id = ftrigr_subscribe_g(&a, argv[0], argv[1], 0, &deadline) ; if (!id) strerr_diefu4sys(111, "subscribe to ", argv[0], " with regexp ", argv[1]) ; if (ftrigr_wait_or_g(&a, &id, 1, &deadline, &pack[0]) == -1) strerr_diefu2sys((errno == ETIMEDOUT) ? 1 : 111, "match regexp on ", argv[1]) ; if (allwrite(1, pack, 2) < 2) strerr_diefu1sys(111, "write to stdout") ; return 0 ; }
int buffer_putflush(buffer *s,char *buf,off_t len) { if (buffer_flush(s) == -1) return -1; return allwrite(s->op,s->fd,buf,len); }
int buffer_putflush(buffer *s, const char *buf, ut32 len) { if (!buffer_flush (s)) return 0; return allwrite (s->op, s->fd, buf, len); }
int buffer_putflush(buffer *s,const char *buf,unsigned int len) { if (buffer_flush(s) == -1) return -1; return allwrite(s->op,s->fd,buf,len); }
int __cdecl main(int argc, char *argv[]) { #define N_FRAME 100 #define N_PATCH 600000//(1<<LFSR_SIZE) const char* readfn = "\\\\.\\xillybus_rd" , * writefn = "\\\\.\\xillybus_wr"; HANDLE tid[2]; struct xillyfifo fifo; unsigned int fifo_size = 4096*16; int write_fd, bTalk2FPGA = (int)(argc < 2); unsigned int n_frame = 0; unsigned int msg, n_msg; int rd; FILE* pixel_coeff_f = fopen("reducer_coeff_0.bin", "rb") , *ds_coeff_f = fopen("ds_0.bin", "rb"); if(!pixel_coeff_f) { perror("Failed to open reducer_coeff"); exit(errno); } if(!ds_coeff_f) { perror("Failed to open ds_coeff"); exit(errno); } if(bTalk2FPGA) { //printf("Press any key to connect to FPGA\n"); getchar(); write_fd = _open(writefn, O_WRONLY | _O_BINARY); if (write_fd < 0) { if (errno == ENODEV) fprintf(stderr, "(Maybe %s a write-only file?)\n", writefn); fprintf(stderr, "Failed to open %s", writefn); exit(1); } // If more than one FIFO is created, use the total memory needed instead // of fifo_size with SetProcessWorkingSetSize() if(fifo_size > 20000 && !SetProcessWorkingSetSize(GetCurrentProcess() , 1024*1024 + fifo_size, 2048*1024 + fifo_size)) errorprint("Failed to enlarge unswappable RAM limit", GetLastError()); if (fifo_init(&fifo, fifo_size)) { perror("Failed to init"); exit(1); } read_fd = _open(readfn, O_RDONLY | _O_BINARY); if (read_fd < 0) { perror("Failed to open read file"); exit(1); } if (_setmode(1, _O_BINARY) < 0) fprintf(stderr, "Failed to set binary mode for standard output\n"); // default security, default stack size, default startup flags tid[0] = CreateThread(NULL, 0, read_thread, &fifo, 0, NULL); if (tid[0] == NULL) { errorprint("Failed to create read thread", GetLastError()); exit(1); } tid[1] = CreateThread(NULL, 0, report_thread, &fifo, 0, NULL); if (tid[1] == NULL) { errorprint("Failed to create report thread", GetLastError()); exit(1); } }//end if(bTalk2FPGA) for(n_msg = 0; !feof(pixel_coeff_f); ) { rd = fread(&msg, sizeof(msg), 1, pixel_coeff_f); if(bTalk2FPGA) allwrite(write_fd, (unsigned char*)&msg, sizeof(msg)); printf("weights 0x%08X\n", msg); } //end for for(; !feof(ds_coeff_f); ) { rd = fread(&msg, sizeof(msg), 1, ds_coeff_f); printf("DS 0x%08X\n", msg); if(bTalk2FPGA) allwrite(write_fd, (unsigned char*)&msg, sizeof(msg)); } //end for cleanup: if(bTalk2FPGA) { unsigned int msg = ~0;//Make the FPGA close the rd file allwrite(write_fd, (unsigned char*)&msg, sizeof(msg)); _close(write_fd); _close(read_fd); // Wait for threads to exit if (WaitForSingleObject(tid[0], INFINITE) != WAIT_OBJECT_0) errorprint("Failed waiting for read_thread to terminate" , GetLastError()); fifo_destroy(&fifo); } fclose(ds_coeff_f); fclose(pixel_coeff_f); printf("Press any key to exit\n"); getchar(); return 0; }
int substdio_putflush(substdio *s,const char *buf,int len) { if (substdio_flush(s) == -1) return -1; return allwrite(s->op,s->fd,buf,len); }