Commit Graph

2143 Commits

Author SHA1 Message Date
Yggdrasill bb1316ae00 Sort the overlap map and split entries
The overlap map must be sorted before it can be split. If it's
        not sorted prior, the entry length and base calculations are
        incorrect, which cascades into all other overlaps for the same
        usable memory region.

        After the overlap map has been sorted, it is looped over and
        entries are split off into the memory map.

Add explanatory comments

Formatting fixes
2023-07-30 05:36:43 +01:00
Yggdrasill 5c289f58b4 Build an overlap map if entries completely overlap
This commit adds the logic to construct the overlap map used by
        the split_entry() function later. The reason an overlap map must
        be constructed is because complete overlaps within a usable
        region of memory may happen multiple times. The overlap map
        keeps track of these overlaps so that entries are correctly
        split if that is the case.
2023-07-30 04:54:11 +01:00
Yggdrasill c8581242a9 Add overlap map and split function
This commit adds the split_entry() function:

        static size_t split_entry(struct memmap_entry *,
                        struct memmap_entry *,
                        struct memmap_entry *);

        The split function does a three-way split of overlapping memory
        regions, and writes zero or one entries into a destination
        buffer. The three pointers it takes as arguments are the
        destination buffer, the bad type entry, and the good type entry
        respectively. It returns zero if no new entries were written to
        the destination buffer, or the amount of entries written
        otherwise.
2023-07-30 04:54:06 +01:00
mintsuki 738010031d docs: Update example Limine version in README to 5.20230729.0 2023-07-29 12:00:40 -05:00
mintsuki 0b517a9b82 misc: Update test wallpaper and screenshot 2023-07-29 11:32:55 -05:00
mintsuki edaadc2201 gterm: Change resolutions at which autoscaling is triggered 2023-07-29 04:45:02 -05:00
mintsuki e1d25f8c66 menu: Center menu vertically 2023-07-29 03:52:57 -05:00
mintsuki 551d5163fb gop: Readd preset mode storage 2023-07-29 03:12:31 -05:00
mintsuki b8ea97ccb1 menu: Do not draw box around boot menu 2023-07-29 02:17:34 -05:00
mintsuki 53aa3417e5 menu: Adjust centering by 2 characters to the left 2023-07-28 04:02:27 -05:00
mintsuki 1fc52415dd menu: Fix a couple of boot menu alignment issues 2023-07-28 01:36:19 -05:00
mintsuki bfa16d3d3b menu: Initialise max_len if null regardless of shift 2023-07-28 00:30:44 -05:00
mintsuki 521a1f2276 menu: Fix maybe uninitialised issue with cur_len var 2023-07-27 23:17:36 -05:00
mintsuki 7ca22bd6e8 menu: Fix NULL deref bug with shift variable 2023-07-27 23:12:35 -05:00
mintsuki 1bccba02ae console: Add slide command 2023-07-27 23:09:42 -05:00
mintsuki 6c1eba874a menu: Center boot menu 2023-07-27 22:50:17 -05:00
mintsuki 08f3b4fb00 Revert "build: Make limine-uefi-cd.bin 16MiB in size (use FAT16)"
This reverts commit 2da0a08072.
2023-07-27 02:32:34 -05:00
mintsuki 71ba012a93 gterm: Autoscale font on higher resolutions 2023-07-27 01:41:32 -05:00
ミンツキ 16b5e75cb5
Merge pull request #284 from qookei/fix-aa64-ident-map
limine: Remove dependency on identity map in AArch64 code
2023-07-26 16:18:38 -05:00
Kacper Słomiński 1a03213601 limine: Remove dependency on identity map in AArch64 code 2023-07-26 23:13:33 +02:00
Kacper Słomiński eee638c583 limine: Adjust higher half offsets for AArch64 2023-07-26 23:05:40 +02:00
Kacper Słomiński 075824686f limine: Use a higher-half pointer for the stack on AArch64 2023-07-26 23:05:40 +02:00
mintsuki 303592f9e7 limine: Do not drop unconditional mapping of first 4GiB 2023-07-25 02:54:00 -05:00
mintsuki 296aba6bb7 limine: Drop legacy identity map and map of reserved regions 2023-07-21 15:21:38 -05:00
mintsuki 81e6849431 misc: Minor updates to linker scripts 2023-07-15 01:10:06 +02:00
mintsuki fb038c99c6 build: Get rid of OBJCOPY2ELF_FLAGS since only IA-32/BIOS used it 2023-07-14 22:33:24 +02:00
mintsuki bf2a37992d build: Get rid of RISCV_CFLAGS variable as it is now unnecessary 2023-07-13 07:58:07 +02:00
mintsuki a1b4ff0b46 ci: Remove openssh dependency no longer required for release 2023-07-13 04:57:38 +02:00
mintsuki f16b428aaf riscv64: Do not use global pointer register 2023-07-13 04:45:33 +02:00
mintsuki 5cbc71a133 docs/protocol: Fix typo and mandate ra and gp registers to be 0 for rv64 2023-07-13 03:39:47 +02:00
mintsuki 94a19a5c37 host/limine: Fix typo 2023-07-10 18:57:06 +02:00
mintsuki 93942a3334 docs: Update example Limine version in README to 5.20230709.0 2023-07-09 03:55:27 +02:00
mintsuki b72d033510 elf: elf64_load(): Remove accidentally left in debug code 2023-07-09 03:40:06 +02:00
mintsuki 11f50a6aaa part: Require keypresses between entry displays in list_volumes() 2023-07-09 03:37:55 +02:00
mintsuki 79e50a82af misc: Use assembly for memory functions on x86 2023-07-09 03:09:45 +02:00
mintsuki 17e26c8c95 elf: Fix potential uninitialised usage of bss_size 2023-07-09 03:09:45 +02:00
mintsuki 9333f1ca8b limine/elf: Optimise not to scan .bss for requests 2023-07-08 23:44:50 +02:00
mintsuki 99d671ecf8 build: Drop -Wno-deprecated-declarations flag 2023-06-20 16:24:27 +02:00
mintsuki 7882d89b4e limine: Drop 5-level paging request support 2023-06-20 16:10:08 +02:00
mintsuki 1ad6d6013e limine: Drop terminal request support 2023-06-20 15:58:52 +02:00
mintsuki 2ac43a320f asm: Add missing section directives 2023-06-20 13:24:49 +02:00
mintsuki 2d6a1e4535 console: Add firmware type command 2023-06-20 11:10:33 +02:00
mintsuki d08ea721a5 limine.c: Add copyright and license information to version command 2023-06-20 10:19:01 +02:00
mintsuki 6e41938206 gensyms: Filter out non-function symbols 2023-06-20 08:54:53 +02:00
mintsuki 67fd1a8d9f docs: Update example Limine version in README to 4.20230615.0 2023-06-15 13:20:43 +02:00
mintsuki 66268f7d7f pmm: Use fixed value of 1024 for recl entries count 2023-06-15 13:06:52 +02:00
mintsuki cb14f44eb3 pmm: Fix change-memmap-in-use bug 2023-06-15 12:54:36 +02:00
mintsuki 910a0d84a0 vmm: Fix page_sizes values and move declaration to top 2023-06-15 08:21:48 +02:00
mintsuki 2da0a08072 build: Make limine-uefi-cd.bin 16MiB in size (use FAT16) 2023-06-15 03:14:04 +02:00
mintsuki 670b635ae8 config: Add and document ARCH built-in macro 2023-06-15 02:23:48 +02:00