summaryrefslogtreecommitdiff
path: root/sys/src/libstdio/iolib.h
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
commite5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch)
treed8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/libstdio/iolib.h
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/libstdio/iolib.h')
-rwxr-xr-xsys/src/libstdio/iolib.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/sys/src/libstdio/iolib.h b/sys/src/libstdio/iolib.h
new file mode 100755
index 000000000..8748b5518
--- /dev/null
+++ b/sys/src/libstdio/iolib.h
@@ -0,0 +1,44 @@
+/*
+ * pANS stdio -- definitions
+ * The following names are defined in the pANS:
+ * FILE fpos_t _IOFBF _IOLBF _IONBF
+ * BUFSIZ EOF FOPEN_MAX FILENAME_MAX L_tmpnam
+ * SEEK_CUR SEEK_END SEEK_SET TMP_MAX stderr
+ * stdin stdout remove rename tmpfile
+ * tmpnam fclose fflush fopen freopen
+ * setbuf setvbuf fprintf fscanf printf
+ * scanf sprintf sscanf vfprintf vprintf
+ * vsprintf fgetc fgets fputc fputs
+ * getc getchar gets putc putchar
+ * puts ungetc fread fwrite fgetpos
+ * fseek fsetpos ftell rewind clearerr
+ * feof ferror perror
+ *
+ * (But plan9 version omits remove and rename, because they are in libc)
+ */
+#include <u.h>
+#include <libc.h>
+#undef END
+#include "Stdio.h"
+/*
+ * Flag bits
+ */
+#define BALLOC 1 /* did stdio malloc fd->buf? */
+#define LINEBUF 2 /* is stream line buffered? */
+#define STRING 4 /* output to string, instead of file */
+#define APPEND 8 /* append mode output */
+/*
+ * States
+ */
+#define CLOSED 0 /* file not open */
+#define OPEN 1 /* file open, but no I/O buffer allocated yet */
+#define RDWR 2 /* open, buffer allocated, ok to read or write */
+#define RD 3 /* open, buffer allocated, ok to read but not write */
+#define WR 4 /* open, buffer allocated, ok to write but not read */
+#define ERR 5 /* open, but an uncleared error occurred */
+#define END 6 /* open, but at eof */
+
+int _IO_setvbuf(FILE *);
+
+/* half hearted attempt to make multi threaded */
+extern QLock _stdiolk;