52# define ATTR_PRINTF(one_based_format_index, first_arg) \
53__attribute__((format(__printf__, (one_based_format_index), (first_arg))))
54# define ATTR_VPRINTF(one_based_format_index) ATTR_PRINTF((one_based_format_index), 0)
56# define ATTR_PRINTF((one_based_format_index), (first_arg))
57# define ATTR_VPRINTF(one_based_format_index)
60#ifndef PRINTF_ALIAS_STANDARD_FUNCTION_NAMES
61#define PRINTF_ALIAS_STANDARD_FUNCTION_NAMES 0
64#if PRINTF_ALIAS_STANDARD_FUNCTION_NAMES
65# define printf_ printf
66# define sprintf_ sprintf
67# define vsprintf_ vsprintf
68# define snprintf_ snprintf
69# define vsnprintf_ vsnprintf
70# define vprintf_ vprintf
77#ifndef PRINTF_VISIBILITY
78#define PRINTF_VISIBILITY
101void putchar_(
char c);
118int printf_(
const char* format, ...) ATTR_PRINTF(1, 2);
120int vprintf_(const
char* format, va_list arg) ATTR_VPRINTF(1);
139int sprintf_(
char* s, const
char* format, ...) ATTR_PRINTF(2, 3);
141int vsprintf_(
char* s, const
char* format, va_list arg) ATTR_VPRINTF(2);
162int snprintf_(
char* s,
size_t count, const
char* format, ...) ATTR_PRINTF(3, 4);
164int vsnprintf_(
char* s,
size_t count, const
char* format, va_list arg) ATTR_VPRINTF(3);
184int fctprintf(
void (*out)(
char c,
void* extra_arg),
void* extra_arg, const
char* format, ...) ATTR_PRINTF(3, 4);
186int vfctprintf(
void (*out)(
char c,
void* extra_arg),
void* extra_arg, const
char* format, va_list arg) ATTR_VPRINTF(3);
192#if PRINTF_ALIAS_STANDARD_FUNCTION_NAMES
u32 count
start sector of fragmented bd/file