Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRanjith Kumaran <ranjith@cygnus.com>2000-03-18 01:48:54 +0300
committerRanjith Kumaran <ranjith@cygnus.com>2000-03-18 01:48:54 +0300
commit03261851a10dd2d6900a0a00a7515a0a46fb5d76 (patch)
tree7c22ac6cbbc99fd5cd1b5426853be8d4fd7bfcf1 /libgloss/rs6000/mvme-read.c
parentfae4c299f14fc23e2829c8656992eba21f79242a (diff)
20000317 sourceware import
Diffstat (limited to 'libgloss/rs6000/mvme-read.c')
-rw-r--r--libgloss/rs6000/mvme-read.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/libgloss/rs6000/mvme-read.c b/libgloss/rs6000/mvme-read.c
new file mode 100644
index 000000000..1c823b433
--- /dev/null
+++ b/libgloss/rs6000/mvme-read.c
@@ -0,0 +1,49 @@
+/* mvme-read.c -- read bytes from a input device.
+ *
+ * Copyright (c) 1996 Cygnus Support
+ *
+ * The authors hereby grant permission to use, copy, modify, distribute,
+ * and license this software and its documentation for any purpose, provided
+ * that existing copyright notices are retained in all copies and that this
+ * notice is included verbatim in any distributions. No written agreement,
+ * license, or royalty fee is required for any of the authorized uses.
+ * Modifications to this software may be copyrighted by their authors
+ * and need not follow the licensing terms described here, provided that
+ * the new terms are clearly indicated on the first page of each file where
+ * they apply.
+ */
+
+extern int inbyte ();
+extern char * __inln ();
+
+/*
+ * read -- read bytes from the serial port. Ignore fd, since
+ * we only have stdin.
+ */
+int
+read (fd, buf, nbytes)
+ int fd;
+ char *buf;
+ int nbytes;
+{
+ if (nbytes >= 256)
+ {
+ char *read_end = __inln (buf);
+ *read_end = '\n';
+ return read_end - buf + 1;
+ }
+ else
+ {
+ int i, c;
+ for (i = 0; i < nbytes; i++) {
+ *buf++ = c = inbyte ();
+ if (c == '\n' || c == '\r') {
+ buf[-1] = '\n'; /* convert \r to \n */
+ buf[0] = '\0';
+ break;
+ }
+ }
+
+ return i;
+ }
+}