This website requires JavaScript.
e86313603a
Correct path to cmake file
Rafal Kupiec
2024-04-30 12:19:38 +02:00
7a62ce3feb
Enable Bochs-based emulation
Rafal Kupiec
2024-04-30 12:16:19 +02:00
ecf62ff231
Add OVMF firmware and VGA Bios suitable for use with Bochs
Rafal Kupiec
2024-04-30 11:57:35 +02:00
99ff358287
Don't mess with input string
Rafal Kupiec
2024-04-30 10:31:17 +02:00
c4d5b5bb25
Truncate memory descriptor to 4GB only with PML2
Rafal Kupiec
2024-04-29 23:59:17 +02:00
763bade115
Use correct string formatting when printing page mapping
Rafal Kupiec
2024-04-29 23:57:09 +02:00
0756eb9b29
Allocate memory before copying a buffer
Rafal Kupiec
2024-04-29 22:39:32 +02:00
ab618f95b9
Use dedicated GUID for DUMMYOS boot protocol
Rafal Kupiec
2024-04-29 13:48:01 +02:00
a4bb5a8ecc
Correct formatting
Rafal Kupiec
2024-04-29 12:35:32 +02:00
170b11f7a2
Change OS boot identifier, to be able to load both 'dummy' and 'xtos' modules at the same time
Rafal Kupiec
2024-04-29 12:31:18 +02:00
a6b8f97fbb
Remove empty line
Rafal Kupiec
2024-04-29 08:40:07 +02:00
6b8184aa04
Fix code formatting
Rafal Kupiec
2024-04-29 08:38:45 +02:00
e80927c5d3
Fix undefined behavior and NULL pointer in boot loader OS list renderer
Rafal Kupiec
2024-04-27 00:42:25 +02:00
22693a48d3
Rework trap handling assembly code
Rafal Kupiec
2024-04-23 15:07:08 +02:00
a36c02fde8
Use common name for EFLAGS and RFLAGS, regardless the CPU architecture
Rafal Kupiec
2024-04-21 22:35:06 +02:00
30a2cb9849
Update timers support
Rafal Kupiec
2024-04-21 13:57:55 +02:00
331c5bfeda
Rework initial timer support
Rafal Kupiec
2024-04-20 23:15:57 +02:00
12ce7aae3f
Correct formatting
Rafal Kupiec
2024-04-19 23:59:21 +02:00
9f2279f28f
Use common way of setting initial runlevel across architectures
Rafal Kupiec
2024-04-19 23:56:33 +02:00
5539d98572
Raise to HIGH runlevel before switching the stack
Rafal Kupiec
2024-04-19 23:55:26 +02:00
3aa0413756
Use common routine to set runlevel
Rafal Kupiec
2024-04-19 23:52:21 +02:00
28c89986fb
Tweaks to AMD64 architecture support
Rafal Kupiec
2024-04-19 23:37:39 +02:00
b30d15719c
Temporarily comment out thread code related to trap frame
Rafal Kupiec
2024-04-19 16:59:57 +02:00
51df6c3acb
Update trap handler to allow access to the registers
Rafal Kupiec
2024-04-19 16:54:55 +02:00
92ee74b494
Rework trap handling to access registers
Rafal Kupiec
2024-04-19 16:49:40 +02:00
cf408519ad
Initialize AMD64 segments properly
Rafal Kupiec
2024-04-17 20:02:27 +02:00
8aa33874ff
Initialize CS segment on i686 architecture
Rafal Kupiec
2024-04-17 18:27:57 +02:00
7011d456e9
Fix loading CS segment for AMD64 architecture
Rafal Kupiec
2024-04-17 16:48:18 +02:00
b31aa82872
Fix loading CS segment for i686 architecture
Rafal Kupiec
2024-04-17 16:46:03 +02:00
9d4751abee
Remove useless assembler options
Rafal Kupiec
2024-04-14 11:37:11 +02:00
ffda2fd8a9
Update toolchain settings
Rafal Kupiec
2024-04-14 11:18:31 +02:00
befa211aa7
Add PFN related structures and definitions
Rafal Kupiec
2024-04-08 19:03:58 +02:00
7193e698f1
Store page map level
Rafal Kupiec
2024-04-07 17:49:24 +02:00
388ac1a8c2
Properly, recursively self map page tables on i686 architecture
Rafal Kupiec
2024-04-07 17:11:14 +02:00
7c9233c9a2
Copy memory descriptor to fix i686 compiler error
Rafal Kupiec
2024-04-07 10:51:14 +02:00
0af3a01acf
Pass compatible pointer type to fix compiler warning
Rafal Kupiec
2024-04-07 10:50:21 +02:00
e82c3cbf18
Fix function prototypes
Rafal Kupiec
2024-04-07 10:37:27 +02:00
bfcf9bc61a
Add PFN_NUMBER type definition
Rafal Kupiec
2024-04-07 10:33:53 +02:00
cf8bac9fbe
Initial memory manager initialization code
Rafal Kupiec
2024-04-07 10:27:30 +02:00
04e22c127e
Initial memory manager initialization code
Rafal Kupiec
2024-04-07 10:26:12 +02:00
42a1373612
Do not pre-allocate memory
Rafal Kupiec
2024-04-06 11:28:02 +02:00
1305672875
Properly, recursively self map page tables; currently only for AMD64 and PML4
Rafal Kupiec
2024-04-05 00:26:41 +02:00
d7b103f85d
Add forward references for PTE related structures
Rafal Kupiec
2024-04-03 16:03:17 +02:00
c6f3422c49
Update PTE related structures
Rafal Kupiec
2024-04-03 16:00:26 +02:00
dcca4870cd
Move cursor before changing console attributes
Rafal Kupiec
2024-03-28 14:06:52 +01:00
1cdc1d3e54
Truncate EFI memory descriptor to 4GB and never map EFI reserved memory like PCI BAR
Rafal Kupiec
2024-03-26 23:04:54 +01:00
306891c9eb
Rename XTBL_MODULE_INFO definition to XTBL_MODULE_DATA, to not confuse with structure
Rafal Kupiec
2024-03-25 07:14:18 +01:00
e24c37c9b1
First page is now always present in memory map, so there is no need to map it explicitly
Rafal Kupiec
2024-03-24 23:01:52 +01:00
ce8c66f93a
Always map first page
Rafal Kupiec
2024-03-24 22:52:18 +01:00
b3be36e23d
Map BIOS ROM and VRAM
Rafal Kupiec
2024-03-24 15:53:36 +01:00
74b2c80869
RtlCountLeadingZeroes64() should take 64bit value
Rafal Kupiec
2024-03-23 00:36:59 +01:00
9aff665d1a
Export RtlClearSetBits(), RtlFindClearBits(), RtlFindSetBits() and RtlSetClearBits() routines
Rafal Kupiec
2024-03-22 22:49:12 +01:00
715f842445
Implement RtlClearSetBits(), RtlFindClearBits(), RtlFindSetBits() and RtlSetClearBits() routines
Rafal Kupiec
2024-03-22 18:53:30 +01:00
7895cb0d32
Fix RtlClearBits() and RtlSetBits()
Rafal Kupiec
2024-03-21 21:36:33 +01:00
56d50ea2e8
Implement EDID support for getting the preferred screen resolution
Rafal Kupiec
2024-03-21 15:40:09 +01:00
eb75a27ac2
Use common handle and properly close GOP protocol on failures
Rafal Kupiec
2024-03-21 06:59:05 +01:00
b6f915c0c5
Implement RtlClearBits() and RtlSetBits() routines
Rafal Kupiec
2024-03-19 19:53:49 +01:00
3cd55260e6
Expose BlEnterFirmwareSetup() routine via XTLDR protocol
Rafal Kupiec
2024-03-19 17:11:38 +01:00
e263effe13
Allow to reboot into UEFI Firmware setup interface after pressing F10 in the boot menu
Rafal Kupiec
2024-03-19 17:04:14 +01:00
94e6ca7aec
Implement BlEnterFirmwareSetup() routine
Rafal Kupiec
2024-03-19 16:50:04 +01:00
7b2a2565c5
Expose BlGetEfiVariable() and BlSetEfiVariable() routines via XTLDR protocol
Rafal Kupiec
2024-03-18 22:20:21 +01:00
6accf62552
Expose BlGetConfigBooleanValue() via XTLDR protocol
Rafal Kupiec
2024-03-18 22:16:20 +01:00
18c9cc1644
Remove unnecessary debug messages
Rafal Kupiec
2024-03-18 21:55:17 +01:00
12e8704ffb
Implement BlGetConfigBooleanValue() routine
Rafal Kupiec
2024-03-18 20:02:43 +01:00
bd02da30ef
Update XTLDR configuration file
Rafal Kupiec
2024-03-18 19:43:41 +01:00
1d26b81923
Store last booted OS in NVRAM and make it default one on next boot
Rafal Kupiec
2024-03-18 19:41:55 +01:00
ee23cd90cb
Implement BlGetEfiVariable() and BlSetEfiVariable() routines
Rafal Kupiec
2024-03-18 17:04:58 +01:00
713f826387
XTOS boot protocol should use builtin mapping function
Rafal Kupiec
2024-03-17 23:10:50 +01:00
db0e1d40aa
Allow boot protocols to supply own routine for converting EFI memory type into OS-specific memory type
Rafal Kupiec
2024-03-17 23:06:37 +01:00
41ebabcb09
Provide only necessary framebuffer information to the kernel
Rafal Kupiec
2024-03-15 16:46:53 +01:00
945b323606
Initialize framebuffer earlier and reset video screen mode to circumvent buggy firmwares
Rafal Kupiec
2024-03-15 15:46:45 +01:00
848731c9e6
Introduce ability to change screen resolution
Rafal Kupiec
2024-03-15 15:12:12 +01:00
662b49d96e
Remove unneeded infinite loop
Rafal Kupiec
2024-03-13 16:34:47 +01:00
e6736087ba
Corrections in printing debug messages
Rafal Kupiec
2024-03-13 15:55:03 +01:00
26d5118cea
Add forward references to bit map related routines
Rafal Kupiec
2024-03-12 22:02:24 +01:00
067a8bbade
Export bit map related routines
Rafal Kupiec
2024-03-12 19:31:32 +01:00
c3831f82e7
Initial bit maps support
Rafal Kupiec
2024-03-12 19:15:02 +01:00
3a86ab1424
Remove duplicated code
Rafal Kupiec
2024-03-10 22:51:34 +01:00
bb44caee31
Implement HlPutCharacter() routine
Rafal Kupiec
2024-03-10 17:02:30 +01:00
4bff86c570
Add SSF 2.0 font header structure
Rafal Kupiec
2024-03-10 13:03:45 +01:00
d8ebd9f202
Add font to framebuffer data
Rafal Kupiec
2024-03-10 10:04:51 +01:00
cb4292dccf
Allow to use custom framebuffer fonts
Rafal Kupiec
2024-03-10 10:02:30 +01:00
a4d9e6dd8e
Optimize HlClearScreen() routine
Rafal Kupiec
2024-03-09 15:50:05 +01:00
a4c22ab5e8
Improvements to FrameBuffer support
Rafal Kupiec
2024-03-09 15:07:33 +01:00
475561b038
Add XTOS default framebuffer font (VGA Unicode by Dmitry Yu. Bolkhovityanov)
Rafal Kupiec
2024-03-08 20:20:21 +01:00
5814775c43
Add EFI legacy BIOS protocol related structures
Rafal Kupiec
2024-03-07 21:55:58 +01:00
7c210e8818
Improvements and fixes in framebuffer module
Rafal Kupiec
2024-03-07 16:19:05 +01:00
70a52adb8b
Don't even try to load a dependency modules with invalid name set
Rafal Kupiec
2024-03-02 22:59:20 +01:00
baaa729076
Correct typo in a comment
Rafal Kupiec
2024-03-02 22:27:32 +01:00
bd6516cdf9
Reallocate memory when updating existing config entry via BlSetConfigValue()
Rafal Kupiec
2024-03-02 17:15:37 +01:00
01983ef677
Small fixes to configuration parser
Rafal Kupiec
2024-03-02 16:54:28 +01:00
d61fd4f9c7
Fix grim bug in PE/COFF image structures causing invalid data read from optional header
Rafal Kupiec
2024-03-02 00:56:38 +01:00
a57ae020fa
Implement PeGetFileSize(), PeGetImageSize() and PeUnloadImage() routines
Rafal Kupiec
2024-03-01 23:12:12 +01:00
17c50ea912
Redesign a way of storing module information; this allows to store more data in a single section, like license or a list of authors, as well as solves the problem with different module name lengths
Rafal Kupiec
2024-02-28 23:28:33 +01:00
4b34f7db4b
Update preprocessor macros
Rafal Kupiec
2024-02-28 23:11:45 +01:00
632bb30b64
Implement BlGetRandomValue() and BlInitializeEntropy() routines for future KASLR support
Rafal Kupiec
2024-02-26 23:06:44 +01:00
f9714a79e4
Add support for writing floating point values
Rafal Kupiec
2024-02-22 23:39:11 +01:00
0c7cf6f6d3
Implement RtlInfiniteDouble() and RtlNanDouble() routines
Rafal Kupiec
2024-02-21 19:55:16 +01:00
562b89e4d4
No parameters are expected, explicitly
Rafal Kupiec
2024-02-20 16:59:57 +01:00
4b2d8ded72
No parameters are expected, explicitly
Rafal Kupiec
2024-02-20 16:55:12 +01:00