chiark / gitweb /
No need for Makefile-etc now - we hope.
[chiark-utils.git] / backup / readbuffer.c
index 4cd31afb864ce6c966062038c9a5ad5631d5b57b..ec03c6a390a08022529e12d3727b287e3327718b 100644 (file)
@@ -1,4 +1,31 @@
-/**/
+/*
+ * readbuffer.c
+ *
+ * A program for reading input from devices which don't like constant
+ * stopping and starting, such as tape drives.  readbuffer is:
+ *  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+ *
+ * readbuffer is part of chiark backup, a system for backing up GNU/Linux and
+ * other UN*X-compatible machines, as used on chiark.greenend.org.uk.
+ * chiark backup is:
+ *  Copyright (C) 1997-1998,2000-2001 Ian Jackson <ian@chiark.greenend.org.uk>
+ *  Copyright (C) 1999 Peter Maydell <pmaydell@chiark.greenend.org.uk>
+ *
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this file; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
 
 #include <sys/time.h>
 #include <sys/types.h>
@@ -7,7 +34,6 @@
 #include <stdio.h>
 #include <errno.h>
 #include <unistd.h>
-#include <sys/mman.h>
 
 #define BUFFER 16*1024*1024
 #define WAITEMPTY ((BUFFER*1)/4)
@@ -31,11 +57,13 @@ int main(int argc, const char *const *argv) {
 
   used=0; wp=rp=buf; reading=1; seeneof=0;
   nonblock(0); nonblock(1);
+
   if (argv[1] && !strcmp(argv[1],"--mlock")) {
     if (mlock(buf,sizeof(buf))) { perror("mlock"); exit(1); }
     argv++; argc--;
   }
   if (argv[1]) { fputs("usage: readbuffer [--mlock]\n",stderr); exit(1); }
+
   while (!seeneof || used) {
     FD_ZERO(&readfds);
     if (reading) {