110 #ifndef __TFP_PRINTF__ 111 #define __TFP_PRINTF__ 118 #ifndef TINYPRINTF_DEFINE_TFP_PRINTF 119 # define TINYPRINTF_DEFINE_TFP_PRINTF 1 124 #ifndef TINYPRINTF_DEFINE_TFP_SPRINTF 125 # define TINYPRINTF_DEFINE_TFP_SPRINTF 1 131 #ifndef TINYPRINTF_OVERRIDE_LIBC 132 # define TINYPRINTF_OVERRIDE_LIBC 0 141 #if TINYPRINTF_DEFINE_TFP_SPRINTF 142 # include <sys/types.h> 148 # define _TFP_SPECIFY_PRINTF_FMT(fmt_idx,arg1_idx) \ 149 __attribute__((format (printf, fmt_idx, arg1_idx))) 151 # define _TFP_SPECIFY_PRINTF_FMT(fmt_idx,arg1_idx) 158 typedef void (*putcf) (
void *, char);
170 void tfp_format(
void *putp, putcf putf,
const char *fmt, va_list va);
172 #if TINYPRINTF_DEFINE_TFP_SPRINTF 173 int tfp_vsnprintf(
char *str,
size_t size,
const char *fmt, va_list ap);
174 int tfp_snprintf(
char *str,
size_t size,
const char *fmt, ...) \
175 _TFP_SPECIFY_PRINTF_FMT(3, 4);
176 int tfp_vsprintf(
char *str,
const char *fmt, va_list ap);
177 int tfp_sprintf(
char *str,
const char *fmt, ...) \
178 _TFP_SPECIFY_PRINTF_FMT(2, 3);
179 # if TINYPRINTF_OVERRIDE_LIBC 180 # define vsnprintf tfp_vsnprintf 181 # define snprintf tfp_snprintf 182 # define vsprintf tfp_vsprintf 183 # define sprintf tfp_sprintf 187 #if TINYPRINTF_DEFINE_TFP_PRINTF 188 void init_printf(
void *putp, putcf putf);
189 void tfp_printf(
char *fmt, ...) _TFP_SPECIFY_PRINTF_FMT(1, 2);
190 # if TINYPRINTF_OVERRIDE_LIBC 191 # define printf tfp_printf