Add support for strings (func serial_print) and newlines in serial

This commit is contained in:
g1n 2021-08-05 17:27:54 +03:00
parent eb9ba8f632
commit 13618eeb27
2 changed files with 15 additions and 3 deletions

View File

@ -10,6 +10,9 @@ void kernel_main(void) {
printf("Hello from OrionOS!\n");
printf("Testing serial\n");
init_serial();
write_serial('t');
serial_print("Test is success!\n");
serial_print("Newline test\n");
serial_print("No newline test ");
serial_print("No newline test");
printf("Test finished success!\n");
}

View File

@ -1,4 +1,5 @@
#include <stdint.h>
#include <string.h>
#define PORT 0x3f8 // COM1
@ -44,8 +45,16 @@ void write_serial(char a) {
outb(PORT, a);
}
void serial_printf() {
void serial_print(const char* str, ...) {
size_t len = strlen(str);
for (size_t i=0; i < len; i++) {
if (str[i] == '\n') {
write_serial('\r');
write_serial('\n');
} else {
write_serial(str[i]);
}
}
}
inline void outb(uint16_t port, uint8_t val)