summaryrefslogtreecommitdiffhomepage
path: root/Private/DriverKit/KernelPrint.c
blob: 5ca09ccff0b588f32459abc591b00d3f9a9c863d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* -------------------------------------------

    Copyright Mahrouss Logic

    Purpose: Kernel Text I/O.

------------------------------------------- */

#include <DriverKit/KernelPrint.h>

DK_EXTERN void kernelPrintChar(const char ch) {
    kernelCall("WriteCharacter", 1, ch);
}

/// @brief print string to UART.
/// @param message UART to transmit.
DK_EXTERN void kernelPrintStr(const char* message) {
    if (!message) return;
    if (*message == 0) return;

    size_t index = 0;
    size_t len = kernelStringLength(message);

    while (index < len) {
      kernelPrintChar(message[index]);
      ++index;
    }
}