summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-06-26 21:17:06 +0200
committerAnton Kling <anton@kling.gg>2024-06-26 21:20:47 +0200
commitedf86881446717b633dbb2aaac7b25dbc4630c3f (patch)
tree5270af1ffcbd83ee4cd3809fd6cf525780d1f431
parent58423a4cf62ee848fac5ee6755fa459c7db5acb2 (diff)
Kernel: Code cleanup
-rw-r--r--kernel/Makefile1
-rw-r--r--kernel/arch/i386/mmu.c2
-rw-r--r--kernel/drivers/pit.c2
-rw-r--r--kernel/drivers/vbe.c3
-rw-r--r--kernel/elf.c1
-rw-r--r--kernel/fs/ext2.c1
-rw-r--r--kernel/fs/shm.c8
-rw-r--r--kernel/fs/tmpfs.c1
-rw-r--r--kernel/fs/vfs.c2
-rw-r--r--kernel/kmalloc.c2
-rw-r--r--kernel/kubsan.c2
-rw-r--r--kernel/libc/exit/assert.c2
-rw-r--r--kernel/libc/string/copy.c4
-rw-r--r--kernel/network/tcp.c30
-rw-r--r--kernel/random.c1
-rw-r--r--kernel/socket.c1
-rw-r--r--kernel/syscalls/munmap.c2
17 files changed, 26 insertions, 39 deletions
diff --git a/kernel/Makefile b/kernel/Makefile
index 149b1bc..701e43c 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -8,6 +8,7 @@ INCLUDE=-I./includes/ -I../include/ -I./libc/include/
all: myos.iso
%.o: %.c
+ clang-format -i $<
$(CC) $(INCLUDE) -c -o $@ $< $(CFLAGS)
%.o: %.s
diff --git a/kernel/arch/i386/mmu.c b/kernel/arch/i386/mmu.c
index 6948a73..06d00cc 100644
--- a/kernel/arch/i386/mmu.c
+++ b/kernel/arch/i386/mmu.c
@@ -659,7 +659,7 @@ int create_table(int table_index) {
if (kernel_directory->tables[table_index]) {
return 0;
}
- u32 physical;
+ u32 physical = 0;
kernel_directory->tables[table_index] =
(PageTable *)kmalloc_align(sizeof(PageTable), (void **)&physical);
if (!kernel_directory->tables[table_index]) {
diff --git a/kernel/drivers/pit.c b/kernel/drivers/pit.c
index f8d2c42..80f55aa 100644
--- a/kernel/drivers/pit.c
+++ b/kernel/drivers/pit.c
@@ -50,7 +50,7 @@ void int_clock(reg_t *regs) {
if (switch_counter >= hertz) {
EOI(0x20);
switch_counter = 0;
- if(is_switching_tasks) {
+ if (is_switching_tasks) {
return;
}
switch_task();
diff --git a/kernel/drivers/vbe.c b/kernel/drivers/vbe.c
index 5621b63..05edfb8 100644
--- a/kernel/drivers/vbe.c
+++ b/kernel/drivers/vbe.c
@@ -52,7 +52,8 @@ vfs_vm_object_t *vbe_get_vm_object(u64 length, u64 offset, vfs_fd_t *fd) {
(void)length;
(void)offset;
int n = (uintptr_t)align_page((void *)(u32)framebuffer_size) / 0x1000;
- vbe_vm_object.object = kmalloc(sizeof(void *) * n);
+
+ vbe_vm_object.object = kcalloc(sizeof(void *), n);
if (!vbe_vm_object.object) {
return NULL;
}
diff --git a/kernel/elf.c b/kernel/elf.c
index 3c7f96e..8373818 100644
--- a/kernel/elf.c
+++ b/kernel/elf.c
@@ -1,6 +1,7 @@
#include <assert.h>
#include <crypto/SHA1/sha1.h>
#include <elf.h>
+#include <fcntl.h>
#include <sched/scheduler.h>
#include <stddef.h>
#include <typedefs.h>
diff --git a/kernel/fs/ext2.c b/kernel/fs/ext2.c
index 5416cab..47d4d56 100644
--- a/kernel/fs/ext2.c
+++ b/kernel/fs/ext2.c
@@ -1,5 +1,6 @@
#include <assert.h>
#include <drivers/pit.h>
+#include <fcntl.h>
#include <fs/ext2.h>
#include <fs/vfs.h>
#include <math.h>
diff --git a/kernel/fs/shm.c b/kernel/fs/shm.c
index ec7286f..8fcb64c 100644
--- a/kernel/fs/shm.c
+++ b/kernel/fs/shm.c
@@ -87,10 +87,10 @@ int shm_open(const char *name, int oflag, mode_t mode) {
}
vfs_inode_t *inode = vfs_create_inode(
- 0 /*inode_num*/, 0 /*type*/, NULL, NULL, 1 /*is_open*/,
- internal_object, 0 /*file_size*/, NULL /*open*/, NULL /*create_file*/,
- shm_read, shm_write, NULL /*close*/, NULL /*create_directory*/,
- shm_get_vm_object, shm_ftruncate, NULL /*stat*/, NULL /*send_signal*/, NULL /*connect*/);
+ 0 /*inode_num*/, 0 /*type*/, NULL, NULL, 1 /*is_open*/, internal_object,
+ 0 /*file_size*/, NULL /*open*/, NULL /*create_file*/, shm_read, shm_write,
+ NULL /*close*/, NULL /*create_directory*/, shm_get_vm_object,
+ shm_ftruncate, NULL /*stat*/, NULL /*send_signal*/, NULL /*connect*/);
vfs_fd_t *fd_ptr;
int fd = vfs_create_fd(oflag, mode, 0 /*is_tty*/, inode, &fd_ptr);
diff --git a/kernel/fs/tmpfs.c b/kernel/fs/tmpfs.c
index cd48b93..8269364 100644
--- a/kernel/fs/tmpfs.c
+++ b/kernel/fs/tmpfs.c
@@ -1,5 +1,6 @@
#include <assert.h>
#include <errno.h>
+#include <fcntl.h>
#include <fs/fifo.h>
#include <fs/tmpfs.h>
#include <sched/scheduler.h>
diff --git a/kernel/fs/vfs.c b/kernel/fs/vfs.c
index dfdaf44..5bbca8e 100644
--- a/kernel/fs/vfs.c
+++ b/kernel/fs/vfs.c
@@ -1,9 +1,9 @@
#include <assert.h>
#include <errno.h>
+#include <fcntl.h>
#include <fs/vfs.h>
#include <mmu.h>
#include <poll.h>
-#include <fcntl.h>
vfs_inode_t *root_dir;
vfs_mounts_t mounts[10];
diff --git a/kernel/kmalloc.c b/kernel/kmalloc.c
index b7c5dec..5c399e6 100644
--- a/kernel/kmalloc.c
+++ b/kernel/kmalloc.c
@@ -9,7 +9,7 @@
#include <stdint.h>
#define NEW_ALLOC_SIZE 0x5000
-//#define KMALLOC_DEBUG
+// #define KMALLOC_DEBUG
#define IS_FREE (1 << 0)
#define IS_FINAL (1 << 1)
diff --git a/kernel/kubsan.c b/kernel/kubsan.c
index 9bc2631..2923268 100644
--- a/kernel/kubsan.c
+++ b/kernel/kubsan.c
@@ -1,8 +1,8 @@
+#include <cpu/arch_inst.h>
#include <interrupts.h>
#include <kubsan.h>
#include <log.h>
#include <stdio.h>
-#include <cpu/arch_inst.h>
void ubsan_log(const char *cause, struct source_location source) {
kprintf("%s: %s : %d\n", cause, source.file_name, source.line);
diff --git a/kernel/libc/exit/assert.c b/kernel/libc/exit/assert.c
index 89aa863..fd5f086 100644
--- a/kernel/libc/exit/assert.c
+++ b/kernel/libc/exit/assert.c
@@ -1,7 +1,7 @@
#include <assert.h>
+#include <cpu/arch_inst.h>
#include <log.h>
#include <stdio.h>
-#include <cpu/arch_inst.h>
__attribute__((__noreturn__)) void aFailed(char *f, int l) {
kprintf("Assert failed\n");
diff --git a/kernel/libc/string/copy.c b/kernel/libc/string/copy.c
index 3ab5618..17f720c 100644
--- a/kernel/libc/string/copy.c
+++ b/kernel/libc/string/copy.c
@@ -1,8 +1,8 @@
#include <assert.h>
#include <kmalloc.h>
+#include <mmu.h>
#include <stddef.h>
#include <string.h>
-#include <mmu.h>
char *copy_and_allocate_string(const char *s) {
size_t l = strlen(s) + 1;
@@ -26,6 +26,6 @@ char *copy_and_allocate_user_string(const char *s) {
if (!r) {
return NULL;
}
- memcpy(r, s, len+1);
+ memcpy(r, s, len + 1);
return r;
}
diff --git a/kernel/network/tcp.c b/kernel/network/tcp.c
index d8538cc..bb48f53 100644
--- a/kernel/network/tcp.c
+++ b/kernel/network/tcp.c
@@ -223,24 +223,6 @@ void handle_tcp(ipv4_t src_ip, ipv4_t dst_ip, const u8 *payload,
con->rcv_nxt = seq_num;
}
- /*
- u32 seq_num_end = seq_num + tcp_payload_length - 1;
- int case1 =
- (con->rcv_nxt <= seq_num) && (seq_num < (con->rcv_nxt + con->rcv_wnd));
- int case2 = (con->rcv_nxt <= seq_num_end) &&
- (seq_num_end < (con->rcv_nxt + con->rcv_wnd));
-
- if (!case1 && !case2) {
- kprintf("seq_num: %d\n", seq_num);
- kprintf("seq_num_end: %d\n", seq_num_end);
- kprintf("con->rcv_nxt: %d\n", con->rcv_nxt);
- kprintf("con->rcv_wnd: %d\n", con->rcv_wnd);
- // Invalid segment
- kprintf("invalid segment\n");
- return;
- }
- */
-
if (ack_num > con->snd_max) {
// TODO: Odd ACK number, what should be done?
kprintf("odd ACK\n");
@@ -257,16 +239,9 @@ void handle_tcp(ipv4_t src_ip, ipv4_t dst_ip, const u8 *payload,
return;
}
- // kprintf("seq_num: %d rcv_nxt %d\n", seq_num, con->rcv_nxt);
- // kprintf("tcp_payload_length: %d\n", tcp_payload_length);
-
con->snd_wnd = window_size;
con->snd_una = ack_num;
- // con->sent_ack =
- // max(con->sent_ack, seq_num +
- // min(ringbuffer_unused(&con->incoming_buffer),
- // tcp_payload_length));
con->rcv_nxt += (FIN & flags) ? 1 : 0;
con->rcv_nxt += (SYN & flags) ? 1 : 0;
@@ -335,6 +310,11 @@ void handle_tcp(ipv4_t src_ip, ipv4_t dst_ip, const u8 *payload,
}
break;
}
+ case TCP_STATE_CLOSE_WAIT: {
+ // Waiting for this machine to close the connection. There is
+ // nothing to respond with.
+ break;
+ }
default: {
klog(LOG_WARN, "TCP state not handled %d", con->state);
break;
diff --git a/kernel/random.c b/kernel/random.c
index 80337bc..7c868ed 100644
--- a/kernel/random.c
+++ b/kernel/random.c
@@ -3,6 +3,7 @@
#include <crypto/ChaCha20/chacha20.h>
#include <crypto/SHA1/sha1.h>
#include <crypto/xoshiro256plusplus/xoshiro256plusplus.h>
+#include <fcntl.h>
#include <fs/devfs.h>
#include <fs/vfs.h>
#include <random.h>
diff --git a/kernel/socket.c b/kernel/socket.c
index ad774e2..bd7f755 100644
--- a/kernel/socket.c
+++ b/kernel/socket.c
@@ -1,5 +1,6 @@
#include <assert.h>
#include <errno.h>
+#include <fcntl.h>
#include <fs/devfs.h>
#include <fs/tmpfs.h>
#include <interrupts.h>
diff --git a/kernel/syscalls/munmap.c b/kernel/syscalls/munmap.c
index 82f7918..d57ef36 100644
--- a/kernel/syscalls/munmap.c
+++ b/kernel/syscalls/munmap.c
@@ -2,5 +2,5 @@
#include <syscalls.h>
int syscall_munmap(void *addr, size_t length) {
-return munmap(addr, length);
+ return munmap(addr, length);
}