Compare commits

..

No commits in common. "9944f79b2e3fa0cd2d8d3c410223a932df1f066a" and "da804296c6f45c8bf7c6d29570552df43da3c853" have entirely different histories.

3 changed files with 6 additions and 21 deletions

View File

@ -69,25 +69,11 @@ void kernel_main(multiboot_info_t *mbd, uint32_t magic)
// PRINT_PTR(alloc_frame()); // PRINT_PTR(alloc_frame());
if (false) { if (false) {
void *start = alloc_pages(1); void *ptr;
int *ptr; while ((ptr = alloc_pages(PAGE_SIZE * 1))) {
uint32_t i; if (ptr)
for (i = 1; (ptr = alloc_pages(PAGE_SIZE)); i++) { memset(ptr, ~0, PAGE_SIZE * 1);
*ptr = i;
if (i == 4096)
break;
} }
uint16_t bozo = 0;
for (uint32_t j = 1; j < i - 1; j++) {
ptr = start + j * PAGE_SIZE;
if (*ptr != j) {
bozo++;
if (bozo == 12)
break;
}
kprintf("j=%d %p: %d\n", j, ptr, *ptr);
}
} else { } else {
while (vmalloc(10)) while (vmalloc(10))
; ;

View File

@ -90,8 +90,7 @@ static void add_frame_node(multiboot_memory_map_t *mmmt)
*/ */
if (KERNEL_START <= start_addr && KERNEL_END > start_addr && if (KERNEL_START <= start_addr && KERNEL_END > start_addr &&
KERNEL_END <= end_addr) { KERNEL_END <= end_addr) {
len = ROUND_CEIL(len - (KERNEL_END - start_addr), PAGE_SIZE) - len = len - (KERNEL_END - start_addr);
PAGE_SIZE; // cringe but ROUND_FLOOR is un poquito crampte
start_addr = ROUND_CEIL(KERNEL_END, PAGE_SIZE); start_addr = ROUND_CEIL(KERNEL_END, PAGE_SIZE);
} }
end_addr = ROUND_CEIL(start_addr + len, PAGE_SIZE); end_addr = ROUND_CEIL(start_addr + len, PAGE_SIZE);

View File

@ -17,7 +17,7 @@ static int16_t find_next_block(size_t nb_pages, uint16_t *pd_index_ptr,
} }
*page_table_ptr = *page_table_ptr =
(uint32_t *)GET_PAGE_ADDR(0, *pd_index_ptr + PT_START); (uint32_t *)GET_PAGE_ADDR(0, *pd_index_ptr + PT_START);
for (uint16_t i = 0; i + nb_pages - 1 < PT_SIZE; i++) { for (uint16_t i = 0; i + nb_pages < PT_SIZE; i++) {
uint16_t j; uint16_t j;
for (j = 0; (*page_table_ptr)[i + j] >> 12 == i + j && for (j = 0; (*page_table_ptr)[i + j] >> 12 == i + j &&
j < nb_pages; j < nb_pages;