Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/stdio.h

    r1c7f381 r23c8acd9  
    3737
    3838#include <stdarg.h>
     39#include <str.h>
    3940#include <io/verify.h>
    40 #include <_bits/size_t.h>
    41 #include <_bits/wchar_t.h>
     41#include <abi/kio.h>
    4242
    4343#define EOF  (-1)
     
    5858#define BUFSIZ  4096
    5959
    60 /** Forward declaration */
    61 struct _IO_FILE;
    62 typedef struct _IO_FILE FILE;
    63 
    64 extern FILE *stdin;
    65 extern FILE *stdout;
    66 extern FILE *stderr;
    67 
    68 /* Character and string input functions */
    69 extern int fgetc(FILE *);
    70 extern char *fgets(char *, int, FILE *);
    71 
    72 extern int getchar(void);
    73 
    74 /* Character and string output functions */
    75 extern int fputc(wchar_t, FILE *);
    76 extern int fputs(const char *, FILE *);
    77 
    78 extern int putchar(wchar_t);
    79 extern int puts(const char *);
    80 
    81 extern int ungetc(int, FILE *);
    82 
    83 /* Formatted string output functions */
    84 extern int fprintf(FILE *, const char*, ...)
    85     _HELENOS_PRINTF_ATTRIBUTE(2, 3);
    86 extern int vfprintf(FILE *, const char *, va_list);
    87 
    88 extern int printf(const char *, ...)
    89     _HELENOS_PRINTF_ATTRIBUTE(1, 2);
    90 extern int vprintf(const char *, va_list);
    91 
    92 extern int snprintf(char *, size_t , const char *, ...)
    93     _HELENOS_PRINTF_ATTRIBUTE(3, 4);
    94 extern int vasprintf(char **, const char *, va_list);
    95 extern int asprintf(char **, const char *, ...)
    96     _HELENOS_PRINTF_ATTRIBUTE(2, 3);
    97 extern int vsnprintf(char *, size_t, const char *, va_list);
    98 
    99 /* File stream functions */
    100 extern FILE *fopen(const char *, const char *);
    101 extern FILE *freopen(const char *, const char *, FILE *);
    102 extern int fclose(FILE *);
    103 
    104 extern size_t fread(void *, size_t, size_t, FILE *);
    105 extern size_t fwrite(const void *, size_t, size_t, FILE *);
    106 
    107 extern int fseek(FILE *, long, int);
    108 extern void rewind(FILE *);
    109 extern long ftell(FILE *);
    110 extern int feof(FILE *);
    111 
    112 extern int fflush(FILE *);
    113 extern int ferror(FILE *);
    114 extern void clearerr(FILE *);
    115 
    116 extern void setvbuf(FILE *, void *, int, size_t);
    117 extern void setbuf(FILE *, void *);
    118 
    119 /* Misc file functions */
    120 extern int rename(const char *, const char *);
    121 extern int remove(const char *);
    122 
    123 #ifndef _HELENOS_SOURCE
    124 #define _IONBF 0
    125 #define _IOLBF 1
    126 #define _IOFBF 2
    127 #endif
    128 
    129 #ifdef _HELENOS_SOURCE
    130 
    131 /* Nonstandard extensions. */
     60#define DEBUG(fmt, ...) \
     61        { \
     62                char _buf[256]; \
     63                int _n = snprintf(_buf, sizeof(_buf), fmt, ##__VA_ARGS__); \
     64                if (_n > 0) \
     65                        (void) __SYSCALL3(SYS_KIO, KIO_WRITE, (sysarg_t) _buf, str_size(_buf)); \
     66        }
    13267
    13368enum _buffer_type {
     
    15186};
    15287
    153 extern int vprintf_size(const char *, va_list);
    154 extern int printf_size(const char *, ...)
    155     _HELENOS_PRINTF_ATTRIBUTE(1, 2);
    156 extern FILE *fdopen(int, const char *);
    157 extern int fileno(FILE *);
     88/** Forward declaration */
     89struct _IO_FILE;
     90typedef struct _IO_FILE FILE;
     91
     92extern FILE *stdin;
     93extern FILE *stdout;
     94extern FILE *stderr;
     95
     96/* Character and string input functions */
     97extern int fgetc(FILE *);
     98extern char *fgets(char *, int, FILE *);
     99
     100extern int getchar(void);
    158101extern char *gets(char *, size_t);
    159102
    160 #include <offset.h>
     103/* Character and string output functions */
     104extern int fputc(wchar_t, FILE *);
     105extern int fputs(const char *, FILE *);
    161106
    162 extern int fseek64(FILE *, off64_t, int);
    163 extern off64_t ftell64(FILE *);
     107extern int putchar(wchar_t);
     108extern int puts(const char *);
    164109
    165 #endif
     110extern int ungetc(int, FILE *);
    166111
     112/* Formatted string output functions */
     113extern int fprintf(FILE *, const char*, ...)
     114    PRINTF_ATTRIBUTE(2, 3);
     115extern int vfprintf(FILE *, const char *, va_list);
     116
     117extern int printf(const char *, ...)
     118    PRINTF_ATTRIBUTE(1, 2);
     119extern int vprintf(const char *, va_list);
     120
     121extern int snprintf(char *, size_t , const char *, ...)
     122    PRINTF_ATTRIBUTE(3, 4);
     123extern int vasprintf(char **, const char *, va_list);
     124extern int asprintf(char **, const char *, ...)
     125    PRINTF_ATTRIBUTE(2, 3);
     126extern int vsnprintf(char *, size_t, const char *, va_list);
     127
     128extern int printf_size(const char *, ...)
     129    PRINTF_ATTRIBUTE(1, 2);
     130extern int vprintf_size(const char *, va_list);
     131
     132/* File stream functions */
     133extern FILE *fopen(const char *, const char *);
     134extern FILE *fdopen(int, const char *);
     135extern FILE *freopen(const char *, const char *, FILE *);
     136extern int fclose(FILE *);
     137
     138extern size_t fread(void *, size_t, size_t, FILE *);
     139extern size_t fwrite(const void *, size_t, size_t, FILE *);
     140
     141extern int fseek(FILE *, long, int);
     142extern void rewind(FILE *);
     143extern long ftell(FILE *);
     144extern int feof(FILE *);
     145extern int fileno(FILE *);
     146
     147extern int fflush(FILE *);
     148extern int ferror(FILE *);
     149extern void clearerr(FILE *);
     150
     151extern void setvbuf(FILE *, void *, int, size_t);
     152extern void setbuf(FILE *, void *);
     153
     154/* Misc file functions */
     155extern int rename(const char *, const char *);
     156extern int remove(const char *);
    167157
    168158#endif
Note: See TracChangeset for help on using the changeset viewer.