#include <kern/types.h>
#include <stdarg.h>
-size_t vsnprintf(char *buf, size_t size, const char *str, va_list args);
-size_t snprintf(char *buf, size_t size, const char *str, ...)
-__attribute__((format(printf, 3, 4)));
-size_t sprintf(char *buf, const char *str, ...)
-__attribute__((format(printf, 2, 3)));
-size_t printf(const char *str, ...)
-__attribute__((format(printf, 1, 2)));
-
-// These are C-ABI so libgcc and libsupc++ can use them.
extern "C" {
+ size_t vsnprintf(char *buf, size_t size, const char *str, va_list args);
+ size_t snprintf(char *buf, size_t size, const char *str, ...)
+ __attribute__((format(printf, 3, 4)));
+ size_t sprintf(char *buf, const char *str, ...)
+ __attribute__((format(printf, 2, 3)));
+ size_t printf(const char *str, ...)
+ __attribute__((format(printf, 1, 2)));
+
// FIXME: template/alignof versions
void *memcpy(void *dest, const void *src, size_t len);
void *memmove(void *dest, const void *src, size_t len);