19#pragma GCC system_header
20#include_next <stdio.h>
22#ifndef _COBALT_STDIO_H
23#define _COBALT_STDIO_H
27#include <xeno_config.h>
28#include <cobalt/wrappers.h>
34COBALT_DECL(
int, vfprintf, (FILE *stream,
const char *fmt, va_list args));
36#ifdef CONFIG_XENO_FORTIFY
38COBALT_DECL(
int, __vfprintf_chk,
39 (FILE *stream,
int level,
const char *fmt, va_list ap));
41COBALT_DECL(
int, __vprintf_chk, (
int flag,
const char *fmt, va_list ap));
43COBALT_DECL(
int, __printf_chk, (
int flag,
const char *fmt, ...));
45COBALT_DECL(
int, __fprintf_chk, (FILE *fp,
int flag,
const char *fmt, ...));
47int __rt_vfprintf_chk(FILE *stream,
int level,
48 const char *fmt, va_list args);
50void __rt_vsyslog_chk(
int priority,
int level,
51 const char *fmt, va_list args);
55COBALT_DECL(
int, vprintf, (
const char *fmt, va_list args));
57COBALT_DECL(
int, fprintf, (FILE *stream,
const char *fmt, ...));
59COBALT_DECL(
int, printf, (
const char *fmt, ...));
61COBALT_DECL(
int, puts, (
const char *s));
63COBALT_DECL(
int, fputs, (
const char *s, FILE *stream));
66COBALT_DECL(
int, putchar, (
int c));
68static inline int __real_putchar(
int c)
72int __wrap_putchar(
int c);
73int __cobalt_putchar(
int c);
75#define putchar putchar
79COBALT_DECL(
int, fputc, (
int c, FILE *stream));
81static inline int __real_fputc(
int c, FILE *stream)
83 return fputc(c, stream);
85int __wrap_fputc(
int c, FILE *stream);
86int __cobalt_fputc(
int c, FILE *stream);
91COBALT_DECL(
size_t, fwrite,
92 (
const void *ptr,
size_t sz,
size_t nmemb, FILE *stream));
94COBALT_DECL(
int, fclose, (FILE *stream));
96int rt_vfprintf(FILE *stream,
const char *format, va_list args);
98int rt_vprintf(
const char *format, va_list args);
100int rt_fprintf(FILE *stream,
const char *format, ...);
102int rt_printf(
const char *format, ...);
104int rt_puts(
const char *s);
106int rt_fputs(
const char *s, FILE *stream);
108int rt_fputc(
int c, FILE *stream);
110int rt_putchar(
int c);
112size_t rt_fwrite(
const void *ptr,
size_t size,
size_t nmemb, FILE *stream);
114void rt_syslog(
int priority,
const char *format, ...);
116void rt_vsyslog(
int priority,
const char *format, va_list args);
118int rt_print_init(
size_t buffer_size,
const char *name);
120const char *rt_print_buffer_name(
void);
122void rt_print_flush_buffers(
void);