kernel: add e9 device for debugging

This commit is contained in:
Matheus
2023-09-07 15:59:58 -03:00
parent 35fe8f2d6b
commit cb8324b070
4 changed files with 25 additions and 0 deletions
+22
View File
@@ -1,4 +1,6 @@
#include <arch/io.h>
#include <kernel/devfs.h>
#include <logging.h>
void arch_e9_putc(char c) {
#ifdef X86_64_ENABLE_E9
@@ -13,3 +15,23 @@ void arch_e9_puts(char *c) {
}
#endif
}
static int devwrite(int minor, void *bufferp, size_t count, uintmax_t offset, int flags, size_t *wcount) {
uint8_t *buffer = bufferp;
for (uintmax_t i = 0; i < count; ++i)
outb(0xe9, buffer[i]);
*wcount = count;
return 0;
}
static devops_t devops = {
.write = devwrite
};
void arch_e9_initdev() {
#ifdef X86_64_ENABLE_E9
__assert(devfs_register(&devops, "e9", V_TYPE_CHDEV, DEV_MAJOR_E9, 0, 0644) == 0);
#endif
}
+1
View File
@@ -63,6 +63,7 @@ void kernel_entry() {
block_init();
pseudodevices_init();
arch_e9_initdev();
pci_init();
keyboard_init();
arch_ps2_init();
+1
View File
@@ -12,6 +12,7 @@
#define DEV_MAJOR_FB 5
#define DEV_MAJOR_KEYBOARD 6
#define DEV_MAJOR_BLOCK 7
#define DEV_MAJOR_E9 8
typedef struct {
int (*open)(int minor, int flags);
+1
View File
@@ -3,5 +3,6 @@
void arch_e9_putc(char);
void arch_e9_puts(char *);
void arch_e9_initdev();
#endif