Home | History | Annotate | Download | only in posix
      1 /*
      2  * Copyright (C) 2017 The Android Open Source Project
      3  * All rights reserved.
      4  *
      5  * Redistribution and use in source and binary forms, with or without
      6  * modification, are permitted provided that the following conditions
      7  * are met:
      8  *  * Redistributions of source code must retain the above copyright
      9  *    notice, this list of conditions and the following disclaimer.
     10  *  * Redistributions in binary form must reproduce the above copyright
     11  *    notice, this list of conditions and the following disclaimer in
     12  *    the documentation and/or other materials provided with the
     13  *    distribution.
     14  *
     15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     16  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     17  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     18  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     19  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
     20  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
     21  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
     22  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
     23  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     24  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
     25  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     26  * SUCH DAMAGE.
     27  */
     28 
     29 #include <stdio.h>
     30 
     31 #include "header_checks.h"
     32 
     33 static void stdio_h() {
     34   TYPE(FILE*);
     35   TYPE(fpos_t);
     36   TYPE(off_t);
     37   TYPE(size_t);
     38   TYPE(ssize_t);
     39   TYPE(va_list);
     40 
     41   MACRO(BUFSIZ);
     42   MACRO(L_ctermid);
     43   MACRO(L_tmpnam);
     44 
     45   MACRO(_IOFBF);
     46   MACRO(_IOLBF);
     47   MACRO(_IONBF);
     48 
     49   MACRO(SEEK_CUR);
     50   MACRO(SEEK_END);
     51   MACRO(SEEK_SET);
     52 
     53   MACRO(FILENAME_MAX);
     54   MACRO(FOPEN_MAX);
     55   MACRO(TMP_MAX);
     56 
     57   MACRO(EOF);
     58 
     59   MACRO(NULL);
     60 
     61   const char* s;
     62   s = P_tmpdir;
     63 
     64 #if !defined(stderr)
     65 #error stderr
     66 #endif
     67 #if !defined(stdin)
     68 #error stdin
     69 #endif
     70 #if !defined(stdout)
     71 #error stdout
     72 #endif
     73   FILE* fp;
     74   fp = stderr;
     75   fp = stdin;
     76   fp = stdout;
     77 
     78   FUNCTION(clearerr, void (*f)(FILE*));
     79   FUNCTION(ctermid, char* (*f)(char*));
     80   FUNCTION(dprintf, int (*f)(int, const char*, ...));
     81   FUNCTION(fclose, int (*f)(FILE*));
     82   FUNCTION(fdopen, FILE* (*f)(int, const char*));
     83   FUNCTION(feof, int (*f)(FILE*));
     84   FUNCTION(ferror, int (*f)(FILE*));
     85   FUNCTION(fflush, int (*f)(FILE*));
     86   FUNCTION(fgetc, int (*f)(FILE*));
     87   FUNCTION(fgetpos, int (*f)(FILE*, fpos_t*));
     88   FUNCTION(fgets, char* (*f)(char*, int, FILE*));
     89   FUNCTION(fileno, int (*f)(FILE*));
     90   FUNCTION(flockfile, void (*f)(FILE*));
     91   FUNCTION(fmemopen, FILE* (*f)(void*, size_t, const char*));
     92   FUNCTION(fopen, FILE* (*f)(const char*, const char*));
     93   FUNCTION(fprintf, int (*f)(FILE*, const char*, ...));
     94   FUNCTION(fputc, int (*f)(int, FILE*));
     95   FUNCTION(fputs, int (*f)(const char*, FILE*));
     96   FUNCTION(fread, size_t (*f)(void*, size_t, size_t, FILE*));
     97   FUNCTION(freopen, FILE* (*f)(const char*, const char*, FILE*));
     98   FUNCTION(fscanf, int (*f)(FILE*, const char*, ...));
     99   FUNCTION(fseek, int (*f)(FILE*, long, int));
    100   FUNCTION(fseeko, int (*f)(FILE*, off_t, int));
    101   FUNCTION(fsetpos, int (*f)(FILE*, const fpos_t*));
    102   FUNCTION(ftell, long (*f)(FILE*));
    103   FUNCTION(ftello, off_t (*f)(FILE*));
    104   FUNCTION(ftrylockfile, int (*f)(FILE*));
    105   FUNCTION(funlockfile, void (*f)(FILE*));
    106   FUNCTION(fwrite, size_t (*f)(const void*, size_t, size_t, FILE*));
    107   FUNCTION(getc, int (*f)(FILE*));
    108   FUNCTION(getchar, int (*f)(void));
    109   FUNCTION(getc_unlocked, int (*f)(FILE*));
    110   FUNCTION(getchar_unlocked, int (*f)(void));
    111   FUNCTION(getdelim, ssize_t (*f)(char**, size_t*, int, FILE*));
    112   FUNCTION(getline, ssize_t (*f)(char**, size_t*, FILE*));
    113   FUNCTION(gets, char* (*f)(char*));
    114   FUNCTION(open_memstream, FILE* (*f)(char**, size_t*));
    115   FUNCTION(pclose, int (*f)(FILE*));
    116   FUNCTION(perror, void (*f)(const char*));
    117   FUNCTION(popen, FILE* (*f)(const char*, const char*));
    118   FUNCTION(printf, int (*f)(const char*, ...));
    119   FUNCTION(putc, int (*f)(int, FILE*));
    120   FUNCTION(putchar, int (*f)(int));
    121   FUNCTION(putc_unlocked, int (*f)(int, FILE*));
    122   FUNCTION(putchar_unlocked, int (*f)(int));
    123   FUNCTION(puts, int (*f)(const char*));
    124   FUNCTION(remove, int (*f)(const char*));
    125   FUNCTION(rename, int (*f)(const char*, const char*));
    126   FUNCTION(renameat, int (*f)(int, const char*, int, const char*));
    127   FUNCTION(rewind, void (*f)(FILE*));
    128   FUNCTION(scanf, int (*f)(const char*, ...));
    129   FUNCTION(setbuf, void (*f)(FILE*, char*));
    130   FUNCTION(setvbuf, int (*f)(FILE*, char*, int, size_t));
    131   FUNCTION(snprintf, int (*f)(char*, size_t, const char*, ...));
    132   FUNCTION(sprintf, int (*f)(char*, const char*, ...));
    133   FUNCTION(sscanf, int (*f)(const char*, const char*, ...));
    134   FUNCTION(tempnam, char* (*f)(const char*, const char*));
    135   FUNCTION(tmpfile, FILE* (*f)(void));
    136   FUNCTION(tmpnam, char* (*f)(char*));
    137   FUNCTION(ungetc, int (*f)(int, FILE*));
    138   FUNCTION(vdprintf, int (*f)(int, const char*, va_list));
    139   FUNCTION(vfprintf, int (*f)(FILE*, const char*, va_list));
    140   FUNCTION(vfscanf, int (*f)(FILE*, const char*, va_list));
    141   FUNCTION(vprintf, int (*f)(const char*, va_list));
    142   FUNCTION(vscanf, int (*f)(const char*, va_list));
    143   FUNCTION(vsnprintf, int (*f)(char*, size_t, const char*, va_list));
    144   FUNCTION(vsprintf, int (*f)(char*, const char*, va_list));
    145   FUNCTION(vsscanf, int (*f)(const char*, const char*, va_list));
    146 }
    147