...
This commit is contained in:
3
.clangd
3
.clangd
@@ -13,6 +13,3 @@ CompileFlags:
|
|||||||
- "-nostdlib"
|
- "-nostdlib"
|
||||||
- "-I"
|
- "-I"
|
||||||
- "/home/oliste/repos/nub-os/src/stdlib"
|
- "/home/oliste/repos/nub-os/src/stdlib"
|
||||||
|
|
||||||
Style:
|
|
||||||
AngledHeaders: "src/stdlib/.*"
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@@ -25,9 +26,11 @@ void register_irq_handler(uint8_t irq, irq_handler_t handler);
|
|||||||
static inline void enable_interrupts()
|
static inline void enable_interrupts()
|
||||||
{
|
{
|
||||||
__asm__ volatile("sti");
|
__asm__ volatile("sti");
|
||||||
|
printf("Interrupts enabled\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void disable_interrupts()
|
static inline void disable_interrupts()
|
||||||
{
|
{
|
||||||
__asm__ volatile("cli");
|
__asm__ volatile("cli");
|
||||||
|
printf("Interrupts disabled\n");
|
||||||
}
|
}
|
||||||
@@ -24,7 +24,9 @@ void map_memory(multiboot_info_t* mbd)
|
|||||||
{
|
{
|
||||||
multiboot_memory_map_t* mmmt = (multiboot_memory_map_t*)(mbd->mmap_addr + offset);
|
multiboot_memory_map_t* mmmt = (multiboot_memory_map_t*)(mbd->mmap_addr + offset);
|
||||||
|
|
||||||
if (mmmt->type == MULTIBOOT_MEMORY_AVAILABLE && num_regions < USABLE_REGION_SIZE)
|
if (mmmt->type == MULTIBOOT_MEMORY_AVAILABLE)
|
||||||
|
{
|
||||||
|
if (num_regions < USABLE_REGION_SIZE)
|
||||||
{
|
{
|
||||||
usable_regions[num_regions] = (memory_region_t){
|
usable_regions[num_regions] = (memory_region_t){
|
||||||
.base_address = mmmt->addr,
|
.base_address = mmmt->addr,
|
||||||
@@ -33,6 +35,12 @@ void map_memory(multiboot_info_t* mbd)
|
|||||||
|
|
||||||
num_regions++;
|
num_regions++;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("System has more memory than the memory map can hold\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
offset += mmmt->size + sizeof(mmmt->size);
|
offset += mmmt->size + sizeof(mmmt->size);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
global _start
|
global _start
|
||||||
extern entry
|
extern entry
|
||||||
extern handle_isr
|
extern handle_isr
|
||||||
extern pml4
|
|
||||||
|
|
||||||
%define FLAGS 0b10
|
%define FLAGS 0b10
|
||||||
%define MAGIC 0x1BADB002
|
%define MAGIC 0x1BADB002
|
||||||
|
|||||||
Reference in New Issue
Block a user