diff options
author | Anton Kling <anton@kling.gg> | 2024-03-14 13:09:59 +0100 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2024-03-14 13:09:59 +0100 |
commit | 2e8b474d4219e7faaac3823e73c8d528c2698a37 (patch) | |
tree | 7d93b5fd220e8b703ba69f9b55122d15c9d619fb /kernel/init/kernel.c | |
parent | 051ac9f1941e8bc6ad87beccb61a2d53111ba8ea (diff) |
random changes made
Diffstat (limited to 'kernel/init/kernel.c')
-rw-r--r-- | kernel/init/kernel.c | 60 |
1 files changed, 57 insertions, 3 deletions
diff --git a/kernel/init/kernel.c b/kernel/init/kernel.c index 55c65b2..edff4f1 100644 --- a/kernel/init/kernel.c +++ b/kernel/init/kernel.c @@ -20,6 +20,7 @@ #include <log.h> #include <mmu.h> #include <multiboot.h> +#include <network/arp.h> #include <random.h> #include <sched/scheduler.h> #include <stdbool.h> @@ -67,7 +68,7 @@ void kernel_main(u32 kernel_end, unsigned long magic, unsigned long addr, klog("Syscalls Initalized", LOG_SUCCESS); pit_install(); - set_pit_count(100); + set_pit_count(1000); klog("PIT driver installed", LOG_SUCCESS); ata_init(); @@ -95,8 +96,60 @@ void kernel_main(u32 kernel_end, unsigned long magic, unsigned long addr, add_keyboard(); add_mouse(); - // rtl8139_init(); + //////// + rtl8139_init(); + enable_interrupts(); + + /* + u32 ip = gen_ipv4(10, 0, 2, 2); + int err; + u32 listen_socket = tcp_listen_ipv4(ip, 6000, &err); + assert(!err); + u32 socket = tcp_accept(listen_socket, &err); + assert(!err); + + kprintf("socket: %x\n", socket); + + u64 out; + char buffer[256]; + assert(tcp_read(socket, buffer, 256, &out)); + kprintf("got %x bytes\n", out); + for (int i = 0; i < out; i++) { + kprintf("%c", buffer[i]); + } + */ + + ipv4_t gateway; + gateway.d = gen_ipv4(10, 0, 2, 2); + ipv4_t bitmask; + bitmask.d = gen_ipv4(255, 255, 255, 0); + setup_network(gateway, bitmask); + + /* + // u32 ip = gen_ipv4(10, 0, 2, 2); + u32 ip = gen_ipv4(93, 184, 216, 34); + int err; + u32 socket = tcp_connect_ipv4(ip, 80, &err); + assert(!err); + kprintf("socket: %x\n", socket); + u64 out; + char *http_request = "GET /\r\n\r\n"; + assert(tcp_write(socket, http_request, strlen(http_request), &out)); + kprintf("sent: %x over the tcp socket\n", out); + + for (;;) { + char buffer[256]; + assert(tcp_read(socket, buffer, 256, &out)); + kprintf("got %x bytes\n", out); + for (int i = 0; i < out; i++) { + kprintf("%c", buffer[i]); + } + } + + for (;;) + ; + */ display_driver_init(mb); add_vbe_device(); int pid; @@ -107,7 +160,8 @@ void kernel_main(u32 kernel_end, unsigned long magic, unsigned long addr, } } for (;;) { - get_current_task()->sleep_until = pit_num_ms() + 100000000; + current_task->sleep_until = pit_num_ms() + 100000000; + // enable_interrupts(); switch_task(); } } |