123456789101112131415161718192021222324252627282930313233343536 |
- #include "../cpu/isr.h"
- #include "../drivers/screen.h"
- #include "kernel.h"
- #include "../libc/string.h"
- #include "../libc/mem.h"
- void main() {
- isr_install();
- irq_install();
- kprint("Type something, it will go through the kernel\n"
- "Type END to halt the CPU or PAGE to request a kmalloc()\n> ");
- }
- void user_input(char *input) {
- if (strcmp(input, "END") == 0) {
- kprint("Stopping the CPU. Bye!\n");
- asm volatile("hlt");
- } else if (strcmp(input, "PAGE") == 0) {
- /* Lesson 22: Code to test kmalloc, the rest is unchanged */
- u32 phys_addr;
- u32 page = kmalloc(1000, 1, &phys_addr);
- char page_str[16] = "";
- hex_to_ascii(page, page_str);
- char phys_str[16] = "";
- hex_to_ascii(phys_addr, phys_str);
- kprint("Page: ");
- kprint(page_str);
- kprint(", physical address: ");
- kprint(phys_str);
- kprint("\n");
- }
- kprint("You said: ");
- kprint(input);
- kprint("\n> ");
- }
|