Fix FAT driver issues (FAT32 while being under 32MiB), liballoc alignment so SSE doesnt break

This commit is contained in:
2026-03-10 21:01:49 +01:00
parent 38557bab7d
commit 4b099f04f5
27 changed files with 3447 additions and 18 deletions

View File

@@ -1,6 +1,7 @@
/* liballoc breaks when optimized too aggressively, for eg. clang's -Oz */
#pragma clang optimize off
#include <libk/align.h>
#include <limine/requests.h>
#include <mm/liballoc.h>
#include <mm/pmm.h>
@@ -240,6 +241,8 @@ static struct boundary_tag* allocate_new_tag (unsigned int size) {
}
void* malloc (size_t size) {
size = align_up (size, 16);
int index;
void* ptr;
struct boundary_tag* tag = NULL;

View File

@@ -1,6 +1,7 @@
#ifndef _LIBALLOC_H
#define _LIBALLOC_H
#include <aux/compiler.h>
#include <libk/std.h>
// If we are told to not define our own size_t, then we
@@ -38,7 +39,7 @@ struct boundary_tag {
struct boundary_tag* next; //< Linked list info.
struct boundary_tag* prev; //< Linked list info.
};
} ALIGNED (16);
/** This function is supposed to lock the memory data structures. It
* could be as simple as disabling interrupts or acquiring a spinlock.