diff options
Diffstat (limited to '')
-rw-r--r-- | kernel/include/comus/limits.h | 5 | ||||
-rw-r--r-- | kernel/include/comus/memory.h | 4 | ||||
-rw-r--r-- | kernel/mboot/mmap.c | 4 | ||||
-rw-r--r-- | kernel/procs.c (renamed from kernel/procs/procs.c) | 0 |
4 files changed, 10 insertions, 3 deletions
diff --git a/kernel/include/comus/limits.h b/kernel/include/comus/limits.h index aedb49e..58cc9cb 100644 --- a/kernel/include/comus/limits.h +++ b/kernel/include/comus/limits.h @@ -9,9 +9,12 @@ /// max number of processes #define N_PROCS 256 -/// max numer of pci devices +/// max nubmer of pci devices #define N_PCI_DEV 256 +/// max memory entires +#define N_MMAP_ENTRY 64 + /// length of terminal buffer #define TERM_MAX_WIDTH 480 #define TERM_MAX_HEIGHT 270 diff --git a/kernel/include/comus/memory.h b/kernel/include/comus/memory.h index ceca4aa..ad049ec 100644 --- a/kernel/include/comus/memory.h +++ b/kernel/include/comus/memory.h @@ -9,11 +9,11 @@ #ifndef _MEMORY_H #define _MEMORY_H +#include <comus/limits.h> #include <stdint.h> #include <stddef.h> #include <stdbool.h> -#define MMAP_MAX_ENTRY 64 #define PAGE_SIZE 4096 #define F_PRESENT 0x001 @@ -34,7 +34,7 @@ struct memory_segment { struct memory_map { uint32_t entry_count; - struct memory_segment entries[MMAP_MAX_ENTRY]; + struct memory_segment entries[N_MMAP_ENTRY]; }; typedef struct mem_ctx_s *mem_ctx_t; diff --git a/kernel/mboot/mmap.c b/kernel/mboot/mmap.c index e0963ca..d1d3d9a 100644 --- a/kernel/mboot/mmap.c +++ b/kernel/mboot/mmap.c @@ -1,3 +1,5 @@ +#include "comus/memory.h" +#include "lib/klib.h" #include <lib.h> #include <comus/mboot.h> @@ -32,6 +34,8 @@ int mboot_get_mmap(struct memory_map *res) uintptr_t i = (uintptr_t)mmap->entries; for (; i < (uintptr_t)mmap->entries + mmap->size; i += mmap->entry_size, idx++) { + if (idx >= N_MMAP_ENTRY) + panic("Too many mmap entries: limit is %d", N_MMAP_ENTRY); struct multiboot_mmap_entry *seg = (struct multiboot_mmap_entry *)i; res->entries[idx].addr = seg->addr; res->entries[idx].len = seg->len; diff --git a/kernel/procs/procs.c b/kernel/procs.c index a8352b0..a8352b0 100644 --- a/kernel/procs/procs.c +++ b/kernel/procs.c |