summaryrefslogtreecommitdiff
path: root/kernel/init/kernel.c
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-03-14 13:09:59 +0100
committerAnton Kling <anton@kling.gg>2024-03-14 13:09:59 +0100
commit2e8b474d4219e7faaac3823e73c8d528c2698a37 (patch)
tree7d93b5fd220e8b703ba69f9b55122d15c9d619fb /kernel/init/kernel.c
parent051ac9f1941e8bc6ad87beccb61a2d53111ba8ea (diff)
random changes made
Diffstat (limited to 'kernel/init/kernel.c')
-rw-r--r--kernel/init/kernel.c60
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();
}
}