Commit Graph
100 Commits
Author SHA1 Message Date
belliash 8d6d27651c Implement KeGetCurrentProcessorNumber() routine
Builds / ExectOS (amd64) (push) Successful in 36s
Builds / ExectOS (i686) (push) Successful in 34s
2024-05-07 18:52:43 +02:00
belliash f66e9aea9e Store CPU number and mask interrupts in processor block
Builds / ExectOS (i686) (push) Successful in 33s
Builds / ExectOS (amd64) (push) Successful in 36s
2024-05-07 16:21:38 +02:00
belliash 276eb77862 Update KPROCESSOR_BLOCK structure
Builds / ExectOS (amd64) (push) Successful in 34s
Builds / ExectOS (i686) (push) Successful in 33s
2024-05-07 16:20:40 +02:00
belliash ac0b8ab36a Allow to specify CPU number when initializing (A)PIC
Builds / ExectOS (amd64) (push) Successful in 42s
Builds / ExectOS (i686) (push) Successful in 41s
2024-05-07 16:16:49 +02:00
belliash 2c384d780f Fix storing CPU vendor name in PRCB
Builds / ExectOS (amd64) (push) Successful in 48s
Builds / ExectOS (i686) (push) Successful in 45s
2024-05-06 20:01:19 +02:00
belliash 243aacc9c1 Cleanup thread context initialization code
Builds / ExectOS (i686) (push) Successful in 38s
Builds / ExectOS (amd64) (push) Successful in 40s
2024-05-06 16:57:29 +02:00
belliash cf0d23b6fe Correct a typo causing page fault during int handling after switching to new kernel stack
Builds / ExectOS (amd64) (push) Successful in 53s
Builds / ExectOS (i686) (push) Successful in 50s
2024-05-06 16:47:12 +02:00
belliash e4155ee008 Lower runlevel to APC before initializing idle process
Builds / ExectOS (amd64) (push) Successful in 41s
Builds / ExectOS (i686) (push) Successful in 39s
2024-05-05 21:48:58 +02:00
belliash c98ad3862b Use kernel boot stack for the idle thread
Builds / ExectOS (i686) (push) Successful in 43s
Builds / ExectOS (amd64) (push) Successful in 46s
2024-05-05 21:47:48 +02:00
belliash 07d7e06b2b Flush keyboard buffer out of any keystrokes before waiting for user input
Builds / ExectOS (amd64) (push) Successful in 39s
Builds / ExectOS (i686) (push) Successful in 37s
2024-05-05 15:29:20 +02:00
belliash 40e0dd8c5e Mask LVTERR first to prevent local APIC errors
Builds / ExectOS (amd64) (push) Successful in 58s
Builds / ExectOS (i686) (push) Successful in 57s
2024-05-05 15:24:17 +02:00
belliash 5a013e3ab5 Properly free memory after reading a file
Builds / ExectOS (amd64) (push) Successful in 39s
Builds / ExectOS (i686) (push) Successful in 38s
2024-04-30 12:27:27 +02:00
belliash e86313603a Correct path to cmake file
Builds / ExectOS (i686) (push) Successful in 35s
Builds / ExectOS (amd64) (push) Successful in 37s
2024-04-30 12:19:38 +02:00
belliash 7a62ce3feb Enable Bochs-based emulation
Builds / ExectOS (amd64) (push) Failing after 25s
Builds / ExectOS (i686) (push) Failing after 24s
2024-04-30 12:16:19 +02:00
belliash ecf62ff231 Add OVMF firmware and VGA Bios suitable for use with Bochs
Builds / ExectOS (amd64) (push) Successful in 37s
Builds / ExectOS (i686) (push) Successful in 36s
2024-04-30 11:57:35 +02:00
belliash 99ff358287 Don't mess with input string
Builds / ExectOS (amd64) (push) Successful in 35s
Builds / ExectOS (i686) (push) Successful in 34s
2024-04-30 10:31:17 +02:00
belliash c4d5b5bb25 Truncate memory descriptor to 4GB only with PML2
Builds / ExectOS (i686) (push) Successful in 36s
Builds / ExectOS (amd64) (push) Successful in 37s
2024-04-29 23:59:17 +02:00
belliash 763bade115 Use correct string formatting when printing page mapping
Builds / ExectOS (amd64) (push) Successful in 36s
Builds / ExectOS (i686) (push) Successful in 36s
2024-04-29 23:57:09 +02:00
belliash 0756eb9b29 Allocate memory before copying a buffer
Builds / ExectOS (i686) (push) Successful in 34s
Builds / ExectOS (amd64) (push) Successful in 36s
2024-04-29 22:39:32 +02:00
belliash ab618f95b9 Use dedicated GUID for DUMMYOS boot protocol
Builds / ExectOS (amd64) (push) Successful in 37s
Builds / ExectOS (i686) (push) Successful in 35s
2024-04-29 13:48:01 +02:00
belliash a4bb5a8ecc Correct formatting
Builds / ExectOS (amd64) (push) Successful in 35s
Builds / ExectOS (i686) (push) Successful in 35s
2024-04-29 12:35:32 +02:00
belliash 170b11f7a2 Change OS boot identifier, to be able to load both 'dummy' and 'xtos' modules at the same time
Builds / ExectOS (i686) (push) Successful in 32s
Builds / ExectOS (amd64) (push) Successful in 34s
2024-04-29 12:31:18 +02:00
belliash a6b8f97fbb Remove empty line
Builds / ExectOS (i686) (push) Successful in 34s
Builds / ExectOS (amd64) (push) Successful in 35s
2024-04-29 08:40:07 +02:00
belliash 6b8184aa04 Fix code formatting
Builds / ExectOS (i686) (push) Successful in 34s
Builds / ExectOS (amd64) (push) Successful in 35s
2024-04-29 08:38:45 +02:00
belliash e80927c5d3 Fix undefined behavior and NULL pointer in boot loader OS list renderer
Builds / ExectOS (amd64) (push) Successful in 33s
Builds / ExectOS (i686) (push) Successful in 32s
2024-04-27 00:42:25 +02:00
belliash 22693a48d3 Rework trap handling assembly code
Builds / ExectOS (i686) (push) Successful in 32s
Builds / ExectOS (amd64) (push) Successful in 32s
2024-04-23 15:07:08 +02:00
belliash a36c02fde8 Use common name for EFLAGS and RFLAGS, regardless the CPU architecture
Builds / ExectOS (amd64) (push) Successful in 34s
Builds / ExectOS (i686) (push) Successful in 33s
2024-04-21 22:35:06 +02:00
belliash 30a2cb9849 Update timers support
Builds / ExectOS (amd64) (push) Successful in 47s
Builds / ExectOS (i686) (push) Successful in 46s
2024-04-21 13:57:55 +02:00
belliash 331c5bfeda Rework initial timer support
Builds / ExectOS (i686) (push) Successful in 34s
Builds / ExectOS (amd64) (push) Successful in 36s
2024-04-20 23:15:57 +02:00
belliash 12ce7aae3f Correct formatting
Builds / ExectOS (amd64) (push) Successful in 33s
Builds / ExectOS (i686) (push) Successful in 33s
2024-04-19 23:59:21 +02:00
belliash 9f2279f28f Use common way of setting initial runlevel across architectures
Builds / ExectOS (amd64) (push) Successful in 35s
Builds / ExectOS (i686) (push) Successful in 34s
2024-04-19 23:56:33 +02:00
belliash 5539d98572 Raise to HIGH runlevel before switching the stack
Builds / ExectOS (amd64) (push) Successful in 34s
Builds / ExectOS (i686) (push) Successful in 33s
2024-04-19 23:55:26 +02:00
belliash 3aa0413756 Use common routine to set runlevel
Builds / ExectOS (amd64) (push) Successful in 32s
Builds / ExectOS (i686) (push) Successful in 32s
2024-04-19 23:52:21 +02:00
belliash 28c89986fb Tweaks to AMD64 architecture support
Builds / ExectOS (amd64) (push) Successful in 36s
Builds / ExectOS (i686) (push) Successful in 34s
2024-04-19 23:37:39 +02:00
belliash b30d15719c Temporarily comment out thread code related to trap frame
Builds / ExectOS (amd64) (push) Successful in 36s
Builds / ExectOS (i686) (push) Successful in 34s
2024-04-19 16:59:57 +02:00
belliash 51df6c3acb Update trap handler to allow access to the registers
Builds / ExectOS (amd64) (push) Failing after 24s
Builds / ExectOS (i686) (push) Failing after 25s
2024-04-19 16:54:55 +02:00
belliash 92ee74b494 Rework trap handling to access registers
Builds / ExectOS (i686) (push) Failing after 28s
Builds / ExectOS (amd64) (push) Failing after 29s
2024-04-19 16:52:37 +02:00
belliash cf408519ad Initialize AMD64 segments properly
Builds / ExectOS (i686) (push) Successful in 33s
Builds / ExectOS (amd64) (push) Successful in 35s
2024-04-17 20:02:27 +02:00
belliash 8aa33874ff Initialize CS segment on i686 architecture
Builds / ExectOS (amd64) (push) Successful in 32s
Builds / ExectOS (i686) (push) Successful in 31s
2024-04-17 18:27:57 +02:00
belliash 7011d456e9 Fix loading CS segment for AMD64 architecture
Builds / ExectOS (amd64) (push) Successful in 35s
Builds / ExectOS (i686) (push) Successful in 33s
2024-04-17 16:48:18 +02:00
belliash b31aa82872 Fix loading CS segment for i686 architecture
Builds / ExectOS (i686) (push) Successful in 48s
Builds / ExectOS (amd64) (push) Successful in 50s
2024-04-17 16:46:03 +02:00
belliash 9d4751abee Remove useless assembler options
Builds / ExectOS (amd64) (push) Successful in 39s
Builds / ExectOS (i686) (push) Successful in 37s
2024-04-14 11:37:11 +02:00
belliash ffda2fd8a9 Update toolchain settings
Builds / ExectOS (amd64) (push) Successful in 45s
Builds / ExectOS (i686) (push) Successful in 43s
2024-04-14 11:18:31 +02:00
belliash befa211aa7 Add PFN related structures and definitions
Builds / ExectOS (i686) (push) Successful in 34s
Builds / ExectOS (amd64) (push) Successful in 36s
2024-04-08 19:03:58 +02:00
belliash 7193e698f1 Store page map level
Builds / ExectOS (i686) (push) Successful in 32s
Builds / ExectOS (amd64) (push) Successful in 33s
2024-04-07 17:49:24 +02:00
belliash 388ac1a8c2 Properly, recursively self map page tables on i686 architecture
Builds / ExectOS (i686) (push) Successful in 31s
Builds / ExectOS (amd64) (push) Successful in 34s
2024-04-07 17:11:14 +02:00
belliash 7c9233c9a2 Copy memory descriptor to fix i686 compiler error
Builds / ExectOS (i686) (push) Successful in 31s
Builds / ExectOS (amd64) (push) Successful in 31s
2024-04-07 10:51:14 +02:00
belliash 0af3a01acf Pass compatible pointer type to fix compiler warning
Builds / ExectOS (i686) (push) Failing after 28s
Builds / ExectOS (amd64) (push) Successful in 31s
2024-04-07 10:50:21 +02:00
belliash e82c3cbf18 Fix function prototypes
Builds / ExectOS (i686) (push) Failing after 28s
Builds / ExectOS (amd64) (push) Successful in 30s
2024-04-07 10:37:27 +02:00
belliash bfcf9bc61a Add PFN_NUMBER type definition
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Failing after 29s
2024-04-07 10:33:53 +02:00
belliash cf8bac9fbe Initial memory manager initialization code
Builds / ExectOS (amd64) (push) Failing after 25s
Builds / ExectOS (i686) (push) Failing after 25s
2024-04-07 10:27:30 +02:00
belliash 04e22c127e Initial memory manager initialization code
Builds / ExectOS (amd64) (push) Failing after 23s
Builds / ExectOS (i686) (push) Failing after 22s
2024-04-07 10:26:12 +02:00
belliash 42a1373612 Do not pre-allocate memory
Builds / ExectOS (amd64) (push) Successful in 38s
Builds / ExectOS (i686) (push) Successful in 37s
2024-04-06 11:28:02 +02:00
belliash 1305672875 Properly, recursively self map page tables; currently only for AMD64 and PML4
Builds / ExectOS (amd64) (push) Successful in 45s
Builds / ExectOS (i686) (push) Successful in 42s
2024-04-05 00:26:41 +02:00
belliash d7b103f85d Add forward references for PTE related structures
Builds / ExectOS (amd64) (push) Successful in 32s
Builds / ExectOS (i686) (push) Successful in 31s
2024-04-03 16:03:17 +02:00
belliash c6f3422c49 Update PTE related structures
Builds / ExectOS (amd64) (push) Successful in 42s
Builds / ExectOS (i686) (push) Successful in 41s
2024-04-03 16:00:26 +02:00
belliash dcca4870cd Move cursor before changing console attributes
Builds / ExectOS (i686) (push) Successful in 38s
Builds / ExectOS (amd64) (push) Successful in 41s
2024-03-28 14:06:52 +01:00
belliash 1cdc1d3e54 Truncate EFI memory descriptor to 4GB and never map EFI reserved memory like PCI BAR
Builds / ExectOS (amd64) (push) Successful in 32s
Builds / ExectOS (i686) (push) Successful in 32s
2024-03-26 23:04:54 +01:00
belliash 306891c9eb Rename XTBL_MODULE_INFO definition to XTBL_MODULE_DATA, to not confuse with structure
Builds / ExectOS (amd64) (push) Successful in 34s
Builds / ExectOS (i686) (push) Successful in 32s
2024-03-25 07:14:18 +01:00
belliash e24c37c9b1 First page is now always present in memory map, so there is no need to map it explicitly
Builds / ExectOS (i686) (push) Successful in 31s
Builds / ExectOS (amd64) (push) Successful in 30s
2024-03-24 23:01:52 +01:00
belliash ce8c66f93a Always map first page
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 31s
2024-03-24 22:52:18 +01:00
belliash b3be36e23d Map BIOS ROM and VRAM
Builds / ExectOS (amd64) (push) Successful in 38s
Builds / ExectOS (i686) (push) Successful in 36s
2024-03-24 15:53:36 +01:00
belliash 74b2c80869 RtlCountLeadingZeroes64() should take 64bit value
Builds / ExectOS (i686) (push) Successful in 29s
Builds / ExectOS (amd64) (push) Successful in 31s
2024-03-23 00:36:59 +01:00
belliash 9aff665d1a Export RtlClearSetBits(), RtlFindClearBits(), RtlFindSetBits() and RtlSetClearBits() routines
Builds / ExectOS (i686) (push) Successful in 30s
Builds / ExectOS (amd64) (push) Successful in 31s
2024-03-22 22:49:12 +01:00
belliash 715f842445 Implement RtlClearSetBits(), RtlFindClearBits(), RtlFindSetBits() and RtlSetClearBits() routines
Builds / ExectOS (amd64) (push) Successful in 33s
Builds / ExectOS (i686) (push) Successful in 31s
2024-03-22 18:53:30 +01:00
belliash 7895cb0d32 Fix RtlClearBits() and RtlSetBits()
Builds / ExectOS (i686) (push) Successful in 29s
Builds / ExectOS (amd64) (push) Successful in 32s
2024-03-21 21:36:33 +01:00
belliash 56d50ea2e8 Implement EDID support for getting the preferred screen resolution
Builds / ExectOS (i686) (push) Successful in 29s
Builds / ExectOS (amd64) (push) Successful in 31s
2024-03-21 15:40:09 +01:00
belliash eb75a27ac2 Use common handle and properly close GOP protocol on failures
Builds / ExectOS (i686) (push) Successful in 37s
Builds / ExectOS (amd64) (push) Successful in 38s
2024-03-21 06:59:05 +01:00
belliash b6f915c0c5 Implement RtlClearBits() and RtlSetBits() routines
Builds / ExectOS (i686) (push) Successful in 30s
Builds / ExectOS (amd64) (push) Successful in 31s
2024-03-19 19:53:49 +01:00
belliash 3cd55260e6 Expose BlEnterFirmwareSetup() routine via XTLDR protocol
Builds / ExectOS (i686) (push) Successful in 32s
Builds / ExectOS (amd64) (push) Successful in 34s
2024-03-19 17:11:38 +01:00
belliash e263effe13 Allow to reboot into UEFI Firmware setup interface after pressing F10 in the boot menu
Builds / ExectOS (amd64) (push) Successful in 32s
Builds / ExectOS (i686) (push) Successful in 31s
2024-03-19 17:04:14 +01:00
belliash 94e6ca7aec Implement BlEnterFirmwareSetup() routine
Builds / ExectOS (amd64) (push) Successful in 39s
Builds / ExectOS (i686) (push) Successful in 37s
2024-03-19 16:50:04 +01:00
belliash 7b2a2565c5 Expose BlGetEfiVariable() and BlSetEfiVariable() routines via XTLDR protocol
Builds / ExectOS (i686) (push) Successful in 31s
Builds / ExectOS (amd64) (push) Successful in 31s
2024-03-18 22:20:21 +01:00
belliash 6accf62552 Expose BlGetConfigBooleanValue() via XTLDR protocol
Builds / ExectOS (i686) (push) Successful in 33s
Builds / ExectOS (amd64) (push) Successful in 34s
2024-03-18 22:16:20 +01:00
belliash 18c9cc1644 Remove unnecessary debug messages
Builds / ExectOS (amd64) (push) Successful in 33s
Builds / ExectOS (i686) (push) Successful in 32s
2024-03-18 21:55:17 +01:00
belliash 12e8704ffb Implement BlGetConfigBooleanValue() routine
Builds / ExectOS (i686) (push) Successful in 32s
Builds / ExectOS (amd64) (push) Successful in 34s
2024-03-18 20:02:43 +01:00
belliash bd02da30ef Update XTLDR configuration file
Builds / ExectOS (amd64) (push) Successful in 34s
Builds / ExectOS (i686) (push) Successful in 33s
2024-03-18 19:43:41 +01:00
belliash 1d26b81923 Store last booted OS in NVRAM and make it default one on next boot
Builds / ExectOS (amd64) (push) Successful in 35s
Builds / ExectOS (i686) (push) Successful in 33s
2024-03-18 19:41:55 +01:00
belliash ee23cd90cb Implement BlGetEfiVariable() and BlSetEfiVariable() routines
Builds / ExectOS (i686) (push) Successful in 33s
Builds / ExectOS (amd64) (push) Successful in 33s
2024-03-18 17:04:58 +01:00
belliash 713f826387 XTOS boot protocol should use builtin mapping function
Builds / ExectOS (amd64) (push) Successful in 32s
Builds / ExectOS (i686) (push) Successful in 31s
2024-03-17 23:10:50 +01:00
belliash db0e1d40aa Allow boot protocols to supply own routine for converting EFI memory type into OS-specific memory type
Builds / ExectOS (i686) (push) Failing after 32s
Builds / ExectOS (amd64) (push) Failing after 33s
2024-03-17 23:06:37 +01:00
belliash 41ebabcb09 Provide only necessary framebuffer information to the kernel
Builds / ExectOS (amd64) (push) Successful in 33s
Builds / ExectOS (i686) (push) Successful in 32s
2024-03-15 16:46:53 +01:00
belliash 945b323606 Initialize framebuffer earlier and reset video screen mode to circumvent buggy firmwares
Builds / ExectOS (i686) (push) Successful in 34s
Builds / ExectOS (amd64) (push) Successful in 35s
2024-03-15 15:46:45 +01:00
belliash 848731c9e6 Introduce ability to change screen resolution
Builds / ExectOS (i686) (push) Successful in 44s
Builds / ExectOS (amd64) (push) Successful in 46s
2024-03-15 15:12:12 +01:00
belliash 662b49d96e Remove unneeded infinite loop
Builds / ExectOS (amd64) (push) Successful in 35s
Builds / ExectOS (i686) (push) Successful in 34s
2024-03-13 16:34:47 +01:00
belliash e6736087ba Corrections in printing debug messages
Builds / ExectOS (amd64) (push) Successful in 1m18s
Builds / ExectOS (i686) (push) Successful in 1m13s
2024-03-13 15:55:03 +01:00
belliash 26d5118cea Add forward references to bit map related routines
Builds / ExectOS (amd64) (push) Successful in 45s
Builds / ExectOS (i686) (push) Successful in 42s
2024-03-12 22:02:24 +01:00
belliash 067a8bbade Export bit map related routines
Builds / ExectOS (amd64) (push) Successful in 34s
Builds / ExectOS (i686) (push) Successful in 32s
2024-03-12 19:31:32 +01:00
belliash c3831f82e7 Initial bit maps support
Builds / ExectOS (i686) (push) Successful in 34s
Builds / ExectOS (amd64) (push) Successful in 37s
2024-03-12 19:15:02 +01:00
belliash 3a86ab1424 Remove duplicated code
Builds / ExectOS (i686) (push) Successful in 42s
Builds / ExectOS (amd64) (push) Successful in 44s
2024-03-10 22:51:34 +01:00
belliash bb44caee31 Implement HlPutCharacter() routine
Builds / ExectOS (i686) (push) Successful in 29s
Builds / ExectOS (amd64) (push) Successful in 30s
2024-03-10 17:02:30 +01:00
belliash 4bff86c570 Add SSF 2.0 font header structure
Builds / ExectOS (i686) (push) Successful in 32s
Builds / ExectOS (amd64) (push) Successful in 35s
2024-03-10 13:03:45 +01:00
belliash d8ebd9f202 Add font to framebuffer data
Builds / ExectOS (i686) (push) Successful in 32s
Builds / ExectOS (amd64) (push) Successful in 32s
2024-03-10 10:04:51 +01:00
belliash cb4292dccf Allow to use custom framebuffer fonts
Builds / ExectOS (i686) (push) Failing after 28s
Builds / ExectOS (amd64) (push) Failing after 30s
2024-03-10 10:02:30 +01:00
belliash a4d9e6dd8e Optimize HlClearScreen() routine
Builds / ExectOS (i686) (push) Successful in 34s
Builds / ExectOS (amd64) (push) Successful in 35s
2024-03-09 15:50:05 +01:00
belliash a4c22ab5e8 Improvements to FrameBuffer support
Builds / ExectOS (i686) (push) Successful in 35s
Builds / ExectOS (amd64) (push) Successful in 37s
2024-03-09 15:07:33 +01:00
belliash 475561b038 Add XTOS default framebuffer font (VGA Unicode by Dmitry Yu. Bolkhovityanov)
Builds / ExectOS (i686) (push) Successful in 40s
Builds / ExectOS (amd64) (push) Successful in 42s
2024-03-08 20:20:21 +01:00
belliash 5814775c43 Add EFI legacy BIOS protocol related structures
Builds / ExectOS (amd64) (push) Successful in 33s
Builds / ExectOS (i686) (push) Successful in 31s
2024-03-07 21:55:58 +01:00
belliash 7c210e8818 Improvements and fixes in framebuffer module
Builds / ExectOS (i686) (push) Successful in 45s
Builds / ExectOS (amd64) (push) Successful in 47s
2024-03-07 16:19:05 +01:00
belliash 70a52adb8b Don't even try to load a dependency modules with invalid name set
Builds / ExectOS (amd64) (push) Successful in 32s
Builds / ExectOS (i686) (push) Successful in 31s
2024-03-02 22:59:20 +01:00