Annotation of dietlibc/dietstdio.h, revision 1.33
1.23 fefe 1: /* diet stdio */
1.1 cvs 2:
1.10 fefe 3: #include <sys/cdefs.h>
4: #include <sys/types.h>
1.1 cvs 5: #include "dietfeatures.h"
1.8 fefe 6: #ifdef WANT_THREAD_SAFE
1.7 fefe 7: #include <pthread.h>
8: #endif
1.13 olaf 9: #include <stdarg.h>
1.1 cvs 10:
1.11 fefe 11: #ifdef WANT_SMALL_STDIO_BUFS
1.1 cvs 12: #define BUFSIZE 128
1.11 fefe 13: #else
14: #define BUFSIZE 2048
15: #endif
1.1 cvs 16:
1.14 fefe 17: struct __stdio_file {
1.1 cvs 18: int fd;
19: int flags;
1.29 leitner 20: uint32_t bs; /* read: bytes in buffer */
21: uint32_t bm; /* position in buffer */
22: uint32_t buflen; /* length of buf */
1.18 olaf 23: char *buf;
1.16 fefe 24: struct __stdio_file *next; /* for fflush */
1.3 fefe 25: pid_t popen_kludge;
1.21 fefe 26: unsigned char ungetbuf;
1.6 fefe 27: char ungotten;
1.8 fefe 28: #ifdef WANT_THREAD_SAFE
1.7 fefe 29: pthread_mutex_t m;
1.6 fefe 30: #endif
1.14 fefe 31: };
1.1 cvs 32:
33: #define ERRORINDICATOR 1
34: #define EOFINDICATOR 2
35: #define BUFINPUT 4
36: #define BUFLINEWISE 8
1.2 fefe 37: #define NOBUF 16
1.18 olaf 38: #define STATICBUF 32
1.24 olaf 39: #define FDPIPE 64
1.25 leitner 40: #define CANREAD 128
41: #define CANWRITE 256
1.31 leitner 42: #define CHECKLINEWISE 512
1.2 fefe 43:
44: #define _IONBF 0
45: #define _IOLBF 1
46: #define _IOFBF 2
1.1 cvs 47:
1.14 fefe 48: #include <stdio.h>
49:
1.1 cvs 50: /* internal function to flush buffer.
51: * However, if next is BUFINPUT and the buffer is an input buffer, it
52: * will not be flushed. Vice versa for output */
53: extern int __fflush4(FILE *stream,int next);
1.19 fefe 54: extern int __buffered_outs(const char *s,size_t len);
1.13 olaf 55:
56: /* ..scanf */
57: struct arg_scanf {
58: void *data;
59: int (*getch)(void*);
60: int (*putch)(int,void*);
61: };
62:
1.28 leitner 63: int __v_scanf(struct arg_scanf* fn, const char *format, va_list arg_ptr);
1.14 fefe 64:
1.15 olaf 65: struct arg_printf {
66: void *data;
1.33 ! leitner 67: int (*put)(const void*,size_t,void*);
1.15 olaf 68: };
69:
1.28 leitner 70: int __v_printf(struct arg_printf* fn, const char *format, va_list arg_ptr);
1.15 olaf 71:
1.14 fefe 72: extern FILE *__stdio_root;
1.13 olaf 73:
1.20 olaf 74: int __fflush_stdin(void);
75: int __fflush_stdout(void);
76: int __fflush_stderr(void);
77:
1.25 leitner 78: FILE* __stdio_init_file(int fd,int closeonerror,int mode);
1.32 leitner 79: int __stdio_parse_mode(const char *mode) __attribute__((__pure__));
1.22 fefe 80: void __stdio_flushall(void);
1.26 leitner 81:
1.27 sanjiyan 82: #ifndef __THREAD_INTERNAL_H__
83: int __libc_close(int fd);
84: int __libc_open(const char*fn,int flags,...);
1.29 leitner 85: ssize_t __libc_read(int fd,void*buf,size_t len);
86: ssize_t __libc_write(int fd,const void*buf,size_t len);
1.27 sanjiyan 87: #endif
88:
1.26 leitner 89: FILE *fopen_unlocked(const char *path, const char *mode) __THROW;
90: FILE *fdopen_unlocked(int fildes, const char *mode) __THROW;
91: FILE *freopen_unlocked(const char *path, const char *mode, FILE *stream) __THROW;
92:
1.30 leitner 93: int __stdout_is_tty(void);
94: int __stdin_is_tty(void);
LinuxTV legacy CVS <linuxtv.org/cvs>