neptune/kern/libkern/stdio.c
2025-09-02 02:24:45 +02:00

27 lines
600 B
C

#include <uart.h>
#include <mini-printf.h>
#include <stddef.h>
int stdout_puts(char *s, int len, void *unused) {
(void)unused;
// Example: UART write loop
for (int i = 0; i < len; i++) {
uart_putc(s[i]); // <-- your low-level "put char" routine
}
return len;
}
/*
* %% - print '%'
* %c - character
* %s - string
* %d, %u - decimal integer
* %x, %X - hex integer
*/
int kprintf(const char *restrict fmt, ...) {
va_list ap;
va_start(ap, fmt);
int ret = mini_vpprintf(stdout_puts, NULL, fmt, ap);
va_end(ap);
return ret;
}