diff options
| author | Anton Kling <anton@kling.gg> | 2024-06-26 21:17:06 +0200 | 
|---|---|---|
| committer | Anton Kling <anton@kling.gg> | 2024-06-26 21:20:47 +0200 | 
| commit | edf86881446717b633dbb2aaac7b25dbc4630c3f (patch) | |
| tree | 5270af1ffcbd83ee4cd3809fd6cf525780d1f431 | |
| parent | 58423a4cf62ee848fac5ee6755fa459c7db5acb2 (diff) | |
Kernel: Code cleanup
| -rw-r--r-- | kernel/Makefile | 1 | ||||
| -rw-r--r-- | kernel/arch/i386/mmu.c | 2 | ||||
| -rw-r--r-- | kernel/drivers/pit.c | 2 | ||||
| -rw-r--r-- | kernel/drivers/vbe.c | 3 | ||||
| -rw-r--r-- | kernel/elf.c | 1 | ||||
| -rw-r--r-- | kernel/fs/ext2.c | 1 | ||||
| -rw-r--r-- | kernel/fs/shm.c | 8 | ||||
| -rw-r--r-- | kernel/fs/tmpfs.c | 1 | ||||
| -rw-r--r-- | kernel/fs/vfs.c | 2 | ||||
| -rw-r--r-- | kernel/kmalloc.c | 2 | ||||
| -rw-r--r-- | kernel/kubsan.c | 2 | ||||
| -rw-r--r-- | kernel/libc/exit/assert.c | 2 | ||||
| -rw-r--r-- | kernel/libc/string/copy.c | 4 | ||||
| -rw-r--r-- | kernel/network/tcp.c | 30 | ||||
| -rw-r--r-- | kernel/random.c | 1 | ||||
| -rw-r--r-- | kernel/socket.c | 1 | ||||
| -rw-r--r-- | kernel/syscalls/munmap.c | 2 | 
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);  } |