Commit Graph

  • 6b2f34f287 Store physical address as well in the image context belliash 2022-12-04 22:46:33 +01:00
  • b89121fded Implement routines for accessing and manipulating CPU control registers belliash 2022-12-02 23:03:42 +01:00
  • b275caf161 Implement RtlRemoveEntryList() routine belliash 2022-11-28 23:00:20 +01:00
  • cba4a065ba Add missing comments belliash 2022-11-23 20:51:40 +01:00
  • 519df2ad11 Allow to set VirtualAddress of loaded module belliash 2022-11-23 20:34:20 +01:00
  • 2cb2328f45 Initial XtpLoadModule() implementation belliash 2022-11-17 22:44:53 +01:00
  • 0db01053ab Code formatting belliash 2022-11-16 20:06:52 +01:00
  • 5ec08cb84a Implement PeGetSubSystem() routine belliash 2022-11-16 15:03:33 +01:00
  • 9f43ad06af Implement PeRelocateImage() routine belliash 2022-11-15 23:31:35 +01:00
  • 131275e788 Import loader structures definitions belliash 2022-11-15 20:16:23 +01:00
  • df5eab737b Add PE/COFF image characteristics belliash 2022-11-15 20:14:28 +01:00
  • 3125a25617 Add three most important linked lists into the kernel initialization block belliash 2022-11-15 19:54:02 +01:00
  • ee9f2df6a6 Properly relocate PE/COFF image belliash 2022-11-15 00:19:21 +01:00
  • fd4e9ffe63 Fix compiler warning for 32bit build, use proper data types belliash 2022-11-14 17:58:53 +01:00
  • e37e5b97af Initial version of the kernel initialization block, needed to start the kernel belliash 2022-11-12 23:17:44 +01:00
  • 2dd7b09fbb Make sure PE image is executable belliash 2022-11-12 19:16:00 +01:00
  • b03c9c2a25 Further PE/COFF module improvements belliash 2022-11-12 12:37:49 +01:00
  • 60c56c4462 Firmware dependent XT structures belliash 2022-11-12 12:21:08 +01:00
  • c2b720fbd8 Add missing PE subsystem belliash 2022-11-07 23:16:48 +01:00
  • 5c5c6b7a5e Initiate boot up sequence belliash 2022-11-07 20:41:21 +01:00
  • f0868b91ec Initial XTOS boot protocol support belliash 2022-11-07 20:21:07 +01:00
  • 3c6136811b Use shorter and more readable variable names belliash 2022-11-07 20:06:19 +01:00
  • 9aa6d6913a Store ARC name as well as system path belliash 2022-11-07 15:53:50 +01:00
  • 66713ba461 Print more accurate message belliash 2022-11-07 15:51:27 +01:00
  • 2f16a8534c Code cleanup belliash 2022-11-06 20:03:49 +01:00
  • c8f99ad6ed Initial PE/COFF support for loading image files belliash 2022-11-06 19:59:38 +01:00
  • 4a364212de Fix 4KB pages allocation belliash 2022-11-05 21:59:55 +01:00
  • bef6b5a589 Import ExectOS ASCII logo belliash 2022-11-01 19:54:08 +01:00
  • 24fac8208b Update OVMF variables belliash 2022-11-01 19:51:14 +01:00
  • 72ec6819a6 Fixes and optimizations in PE/COFF structures belliash 2022-11-01 19:11:12 +01:00
  • 2d5986b514 Add universal (both 32bit and 64bit) PECOFF_IMAGE_NT_HEADERS belliash 2022-10-31 10:08:09 +01:00
  • 3412f97fe4 Missing FileInfo protocol GUID belliash 2022-10-30 22:26:16 +01:00
  • f5e9bd11f1 Implement BlEfiMemoryAllocatePages() and BlEfiMemoryFreePages() for manipulating memory pages belliash 2022-10-30 22:24:21 +01:00
  • b29162841c Get rid of BlEfiDirectorySeparator() routine and allow GetVolumeDevicePath() to store ARC name belliash 2022-10-30 12:21:09 +01:00
  • c09b121178 Rework BlEfiDirectorySeparator(), now it operates on wide strings belliash 2022-10-26 22:11:42 +02:00
  • 30bc0c3cb7 Install kernel under boot directory belliash 2022-10-26 20:30:39 +02:00
  • b1c08e4a9f Implement RtlStringLength() and RtlStringToWideString() routines belliash 2022-10-25 23:45:12 +02:00
  • 0ead750489 Remove useless forward reference belliash 2022-10-25 23:21:58 +02:00
  • 861251f41a Add routines for opening and closing volumes to the loader protocol belliash 2022-10-25 23:17:23 +02:00
  • 26884a436b Implement BlEfiDirectorySeparator() routine for setting correct EFI directory separator belliash 2022-10-25 23:12:09 +02:00
  • 727825572a Print XTLDR version belliash 2022-10-23 22:36:12 +02:00
  • d6cc283519 Add missing IN/OUT indicators belliash 2022-10-23 22:20:17 +02:00
  • 8473150b26 Rename parameters belliash 2022-10-23 22:18:45 +02:00
  • 5869aa985a Quick code refactor for further modules development belliash 2022-10-20 18:19:34 +02:00
  • 37a37c225f Small code refactoring belliash 2022-10-20 15:58:50 +02:00
  • 1296b44ae0 Add executable image (PE/COFF) structures and definitions belliash 2022-10-19 16:30:21 +02:00
  • 6c576f95c4 Rename module entry point belliash 2022-10-19 14:55:31 +02:00
  • 984b4b83a1 This is no longer needed belliash 2022-10-18 18:47:49 +02:00
  • 27f0b3b362 Correct typo belliash 2022-10-18 18:46:46 +02:00
  • 6f9ad1ac9f Add missing code documentation belliash 2022-10-18 15:45:12 +02:00
  • f8a120a24c Allow BlGetXtLoaderProtocol() routine to store loader protocol in a specified variable belliash 2022-10-18 15:44:21 +02:00
  • 96a848b498 Add missing routine declaration belliash 2022-10-17 22:47:46 +02:00
  • 1b310e46f8 Print firmware information, not only secure boot status belliash 2022-10-17 22:35:27 +02:00
  • 71e8bb76de Implement BlEfiGetSystemConfigurationTable() and move BlEfiGetSecureBootStatus() to desired place belliash 2022-10-17 15:47:09 +02:00
  • ade2d189ae Add EFI configuration tables GUIDs belliash 2022-10-17 15:39:25 +02:00
  • c60a46967f Copy module path; this fixes modules loading on i686 belliash 2022-10-16 23:49:40 +02:00
  • 3894d4fd75 Move blproto.c and add missing header file belliash 2022-10-12 23:14:33 +02:00
  • 3fa2ec90aa Refactor code and fix loader protocol support belliash 2022-10-12 23:09:19 +02:00
  • 09e58d0b67 Implement BlEfiGetSecureBootStatus() to get SecureBoot status belliash 2022-10-12 15:47:41 +02:00
  • da37ceaa0f Add missing global variable guid belliash 2022-10-11 23:25:25 +02:00
  • 9e7c041f41 Implement XTLDR modules support belliash 2022-10-11 23:03:29 +02:00
  • 649974b733 BlOpenVolume() now correctly opens a Simple File System protocol belliash 2022-10-05 19:57:46 +02:00
  • 6a0a1eab23 Add missing IN/OUT indicators belliash 2022-10-02 14:09:29 +02:00
  • b21f9c199f Add missing EFI end device path subtypes belliash 2022-10-02 14:05:37 +02:00
  • 6c6e5fe70a Implement RtlListLoop() routine for detecting loops in linked lists belliash 2022-09-27 19:30:19 +02:00
  • bf9171b66a Check for OVMF and prevent doubled messages on serial console belliash 2022-09-27 18:39:26 +02:00
  • 67acacf528 Use SIZE_T for length limiter belliash 2022-09-26 23:02:38 +02:00
  • 252eb5c825 Export RtlWideStringConcatenate() and RtlWideStringLength() routines belliash 2022-09-26 23:01:17 +02:00
  • dd0c86003d Set correct calling convention for RtlWideStringCompare() and RtlWideStringTokenize() routines belliash 2022-09-26 22:54:21 +02:00
  • a0f359bcf7 Implement RtlWideStringConcatenate() routine belliash 2022-09-26 17:26:00 +02:00
  • c7f53e193a Implement RtlWideStringLength() routine belliash 2022-09-26 16:53:58 +02:00
  • 58847c2fea Implement BlCloseVolume() and BlOpenVolume() routines belliash 2022-09-18 18:56:39 +02:00
  • 5fe22b5d6c Fix build by setting project name first belliash 2022-09-17 00:22:45 +02:00
  • 109c24f389 Initial support for xtldr modules and bootloader protocol belliash 2022-09-17 00:14:09 +02:00
  • 33ff15e1db Add EFI XT protocols GUIDs belliash 2022-09-06 17:55:07 +02:00
  • 41f1aee6e3 Implemented RtlCompareMemory() for better compatibility with NT and made use of it in RtlSameMemory(), implemented RtlFillMemory(), RtlMoveMemory(), RtlSetMemory() and RtlZeroMemory() as well belliash 2022-09-06 17:51:44 +02:00
  • d56b10f252 Various fixes to the existing routines: * Export RtlWideStringTokenize() * Allow to compare whole strings in RtlWideStringCompare() when no length specified * RtlSameMemory() returns boolean now * Source bytes can be constant value in RtlCopyMemory() belliash 2022-09-05 15:17:12 +02:00
  • 8a91412ec4 Export existing kernel routines belliash 2022-09-01 22:05:35 +02:00
  • 033447f759 Calling convention goes first belliash 2022-09-01 22:04:07 +02:00
  • a7d07e7ecb Integrate xtklib with the kernel belliash 2022-08-30 23:22:38 +02:00
  • 6ef36cbd26 Add macros for defining signatures built from ASCII characters belliash 2022-08-30 21:56:55 +02:00
  • 94273292c5 Correct typo in README belliash 2022-08-22 20:18:48 +02:00
  • f03b79ee2f Implement BlGetVolumeDevicePath() and BlpDissectVolumeArcPath() belliash 2022-08-22 20:09:50 +02:00
  • 6d135ce209 Define system-wide GUID structure belliash 2022-08-22 18:31:04 +02:00
  • d9b60aaa11 Add missing IN/OUT modifiers to routine declarations belliash 2022-08-22 18:24:15 +02:00
  • 756763d8ca Discover and enumerate EFI block devices belliash 2022-08-21 19:43:43 +02:00
  • 510bd8dc99 Add missing comments belliash 2022-08-21 17:28:14 +02:00
  • d369a5e163 Implement BlEfiMemoryAllocatePool() and BlEfiMemoryFreePool() belliash 2022-08-21 17:05:05 +02:00
  • e61108d9b5 Implement RtlCopyMemory() and RtlSameMemory(), no inline functions in static library belliash 2022-08-21 16:27:57 +02:00
  • 18d5a6d794 Insert new lines in every debug message belliash 2022-08-19 23:46:08 +02:00
  • 8a23f6ba0e Unify capsule naming convensions and add EFI_BLOCK_DEVICE_DATA structure belliash 2022-08-19 23:42:04 +02:00
  • a17c4f2435 Add VSCode workspace belliash 2022-08-17 19:19:57 +02:00
  • 14fafa2517 Implement RtlInsertHeadList() and RtlInsertTailList() belliash 2022-08-16 19:01:23 +02:00
  • ba8b9684ff Coding style belliash 2022-08-16 18:57:49 +02:00
  • 73f4538a62 Boolean cannot be used in EFI, because specification says it is of UINT8 (UCHAR), while XT specifies BOOLEAN as enumerated type belliash 2022-08-16 11:38:24 +02:00
  • ea2de4d5a1 Add missing forward reference and missing fields to the EFI_BLOCK_DEVICE structure belliash 2022-08-15 19:24:47 +02:00
  • 72a235fb27 Add ramdisk device path id belliash 2022-08-15 19:17:19 +02:00
  • 780038901e Add missing device path types and block device structure belliash 2022-08-15 19:08:38 +02:00
  • 31ae4c248b Correct the Javadoc style belliash 2022-08-14 11:22:54 +02:00
  • c0b5e2271e Correct typo belliash 2022-08-13 23:17:26 +02:00