Commit Graph
100 Commits
Author SHA1 Message Date
belliash 2f1c5a22a5 Add __C_specific_handler() and _except_handler3() stubs allowing to use '__try {} __except() {}' (SEH) constructions
ci/woodpecker/push/build Pipeline was successful
2023-02-25 23:01:13 +01:00
belliash 57dee5c535 Reorder parameters in KeInitializeThread()
ci/woodpecker/push/build Pipeline was successful
2023-02-24 22:29:38 +01:00
belliash 9c74aafe3d Initial implementation of process initialization
ci/woodpecker/push/build Pipeline was successful
2023-02-24 19:52:20 +01:00
belliash c4d1f1cd0d Initial implementation of the thread initialization
ci/woodpecker/push/build Pipeline was successful
2023-02-23 20:11:21 +01:00
belliash 9c083dc050 Map zero page, like e820 does
ci/woodpecker/push/build Pipeline was successful
2023-02-23 00:44:21 +01:00
belliash e2c7d0f919 Zero fill memory map before fetching it once again
ci/woodpecker/push/build Pipeline was successful
2023-02-23 00:39:13 +01:00
belliash aace0f39c4 Allow stripped PE/COFF images to be loaded, just warn about it
ci/woodpecker/push/build Pipeline was successful
2023-02-22 15:20:00 +01:00
belliash cbca1e21c6 Add missing forward reference to KeInitializeThread()
ci/woodpecker/push/build Pipeline was successful
2023-02-21 22:49:13 +01:00
belliash 88c17982e4 Thread initialization stub
ci/woodpecker/push/build Pipeline was successful
2023-02-21 22:30:56 +01:00
belliash 757ab280f7 Declare variable at the beginning of routine
ci/woodpecker/push/build Pipeline was successful
2023-02-21 19:22:53 +01:00
belliash 9e264e5327 Update kernel related structures
ci/woodpecker/push/build Pipeline was successful
2023-02-21 16:49:44 +01:00
belliash c8428241dd Add missing headers containing forward references of MM routines
ci/woodpecker/push/build Pipeline was successful
2023-02-20 22:22:32 +01:00
belliash d427ca20fb Always include xtos.h in kernel sources
ci/woodpecker/push/build Pipeline was successful
2023-02-20 00:21:52 +01:00
belliash 9a27d52efe Correct typo
ci/woodpecker/push/build Pipeline was successful
2023-02-18 00:07:12 +01:00
belliash 3354075900 Initial Asynchronous Procedure Call (APC) support
ci/woodpecker/push/build Pipeline was successful
2023-02-18 00:04:51 +01:00
belliash 3ba3a57881 Add missing KPRIORITY definition
ci/woodpecker/push/build Pipeline was successful
2023-02-17 09:41:53 +01:00
belliash 08405e7bdc Ad more routines for semaphores support
ci/woodpecker/push/build Pipeline failed
2023-02-17 09:40:18 +01:00
belliash 03bae53fb9 Export semaphore, spinlock and timer initialization routines
ci/woodpecker/push/build Pipeline was successful
2023-02-16 22:33:54 +01:00
belliash ccaa28399a Initial semaphores support
ci/woodpecker/push/build Pipeline was successful
2023-02-16 19:29:36 +01:00
belliash 525cc116ee Update description
ci/woodpecker/push/build Pipeline was successful
2023-02-16 19:27:01 +01:00
belliash 98884516a1 Implement KeInitializeSpinLock() routine
ci/woodpecker/push/build Pipeline was successful
2023-02-16 18:34:46 +01:00
belliash b2456fd18a Implement kernel timer initialization routines
ci/woodpecker/push/build Pipeline was successful
2023-02-16 17:56:35 +01:00
belliash 91e4176e45 Include more headers to satisfy clang
ci/woodpecker/push/build Pipeline was successful
2023-02-16 17:52:55 +01:00
belliash 4a737d0472 Remove kertptr header file
ci/woodpecker/push/build Pipeline was successful
2023-02-16 17:48:59 +01:00
belliash feff0d9b7b More core kernel library structures
ci/woodpecker/push/build Pipeline failed
2023-02-16 17:46:51 +01:00
belliash 92a461d1e0 Add notes for MM
ci/woodpecker/push/build Pipeline was successful
2023-02-15 23:44:10 +01:00
belliash 785c515e36 Add dispatcher object header definition
ci/woodpecker/push/build Pipeline was successful
2023-02-15 22:49:59 +01:00
belliash 9ea1be96db Implement MmZeroPages() routine
ci/woodpecker/push/build Pipeline was successful
2023-02-15 20:48:48 +01:00
belliash b1c2b209e3 Implement RtlGetStackLimits() routine
ci/woodpecker/push/build Pipeline was successful
2023-02-15 20:12:58 +01:00
belliash d28687631b Add thread stack information to the structure
ci/woodpecker/push/build Pipeline was successful
2023-02-15 20:08:19 +01:00
belliash 18a39f95bc Add floating save area structure definitions
ci/woodpecker/push/build Pipeline was successful
2023-02-15 20:07:17 +01:00
belliash 28b760b089 Add stubs for allocating and freeing kernel stacks
ci/woodpecker/push/build Pipeline was successful
2023-02-14 22:35:16 +01:00
belliash d8bc45e3bb Move HL related global variables into separate file
ci/woodpecker/push/build Pipeline was successful
2023-02-13 23:41:24 +01:00
belliash 2e790bd9b2 Add pages related macros and definitions
ci/woodpecker/push/build Pipeline was successful
2023-02-13 23:01:20 +01:00
belliash 050f24f877 Implement routines for atomically work with linked lists
ci/woodpecker/push/build Pipeline was successful
2023-02-13 22:36:03 +01:00
belliash 9e5fb84412 More routines for performing atomic bitwise AND/OR/XOR operations
ci/woodpecker/push/build Pipeline was successful
2023-02-12 23:11:23 +01:00
belliash 5a86d61b78 Implement routines for performing atomic operations
ci/woodpecker/push/build Pipeline was successful
2023-02-12 22:46:58 +01:00
belliash b43afac326 Cleanup definitions in kernel headers
ci/woodpecker/push/build Pipeline was successful
2023-02-11 22:26:13 +01:00
belliash 6411fc3ae9 Simplify single linked list header
ci/woodpecker/push/build Pipeline was successful
2023-02-11 12:41:00 +01:00
belliash 4cae0447c1 Add single linked list definitions
ci/woodpecker/push/build Pipeline was successful
2023-02-11 00:27:36 +01:00
belliash e4fa9bdead CurrentPrcb is needed here
ci/woodpecker/push/build Pipeline was successful
2023-02-10 17:29:18 +01:00
belliash d72002187d Partially implement ArpIdentifyProcessor()
ci/woodpecker/push/build Pipeline was successful
2023-02-10 17:23:47 +01:00
belliash e94cb2d3a7 Processor identification structures
ci/woodpecker/push/build Pipeline was successful
2023-02-10 17:14:12 +01:00
belliash e645cf664c Set process and thread information in processor control block
ci/woodpecker/push/build Pipeline was successful
2023-02-09 17:30:24 +01:00
belliash 47f399e987 Set current process and thread in processor control block
ci/woodpecker/push/build Pipeline was successful
2023-02-09 00:02:45 +01:00
belliash c4a52938d2 Implement KeGetCurrentThread() routine
ci/woodpecker/push/build Pipeline was successful
2023-02-08 23:58:24 +01:00
belliash e3a900088c Initial process and thread related structures
ci/woodpecker/push/build Pipeline was successful
2023-02-08 23:56:29 +01:00
belliash 9132c47cd9 Initial process and thread related structures
ci/woodpecker/push/build Pipeline failed
2023-02-08 23:40:58 +01:00
belliash 929d3dfae7 Implement KeGetCurrentProcessorBlock() and KeGetCurrentProcessorControlBlock() routines for both amd64 and i686
ci/woodpecker/push/build Pipeline was successful
2023-02-08 16:39:05 +01:00
belliash d8c68ed003 Add endian conversion routines
ci/woodpecker/push/build Pipeline was successful
2023-02-08 16:33:57 +01:00
belliash a32e18b237 Implement ArReadFSDualWord() routine
ci/woodpecker/push/build Pipeline was successful
2023-02-07 23:19:22 +01:00
belliash 75c519a70c Use more generic name for this macro use pointer used behind it will point to kernel debugger after it gets initialized
ci/woodpecker/push/build Pipeline was successful
2023-02-07 19:37:44 +01:00
belliash 67768ae7a3 Mark ArpIdentifyProcessor() as unimplemented
ci/woodpecker/push/build Pipeline was successful
2023-02-06 16:15:24 +01:00
belliash f8d2ccc0d0 Add more debugging macros
ci/woodpecker/push/build Pipeline was successful
2023-02-06 16:10:32 +01:00
belliash 9c7d961c5a Architecture specific initialization after processor init is done
ci/woodpecker/push/build Pipeline was successful
2023-02-06 15:53:11 +01:00
belliash 385f0e6de0 Not all AMD64 CPUs support large pages and global pages, unfortunately
ci/woodpecker/push/build Pipeline was successful
2023-02-05 22:14:47 +01:00
belliash 76f22fbdc4 Initialize segments and processor registers for i686 architecture
ci/woodpecker/push/build Pipeline was successful
2023-02-05 15:45:22 +01:00
belliash 2ba42c5270 Update ideas
ci/woodpecker/push/build Pipeline was successful
2023-02-05 13:23:11 +01:00
belliash 911903d0eb Add missing routine description
ci/woodpecker/push/build Pipeline was successful
2023-02-05 10:08:49 +01:00
belliash 707c92e08a Boot loader no longer needs to do anything related to the stack
ci/woodpecker/push/build Pipeline was successful
2023-02-05 10:03:21 +01:00
belliash d6aac59199 Let kernel initialize stack on it's own without relying on boot loader
ci/woodpecker/push/build Pipeline was successful
2023-02-05 09:55:59 +01:00
belliash 0b743a5f26 Add stub routine for identifying processor
ci/woodpecker/push/build Pipeline was successful
2023-02-05 00:42:30 +01:00
belliash c6cadbd655 Initialize MXCSR register
ci/woodpecker/push/build Pipeline was successful
2023-02-05 00:30:12 +01:00
belliash 5eaf7d63a3 Initialize Page Attribute Table
ci/woodpecker/push/build Pipeline was successful
2023-02-05 00:14:34 +01:00
belliash 55cdae7c83 Initialize AMD64 processor registers
ci/woodpecker/push/build Pipeline was successful
2023-02-04 23:40:03 +01:00
belliash f181215341 Initialize segment registers
ci/woodpecker/push/build Pipeline was successful
2023-02-04 00:17:07 +01:00
belliash f37722b6e6 Distinguish ProcessorBlock and ProcessorControlBlock
ci/woodpecker/push/build Pipeline was successful
2023-02-03 19:28:03 +01:00
belliash b90f37dad4 Fill in Interrupt Descriptor Table (IDT)
ci/woodpecker/push/build Pipeline was successful
2023-02-03 18:40:10 +01:00
belliash 648ad1636a Cleanup TSS initialization code
ci/woodpecker/push/build Pipeline was successful
2023-02-03 18:27:50 +01:00
belliash 269214ed34 Another improvements to GDT
ci/woodpecker/push/build Pipeline was successful
2023-02-03 18:00:37 +01:00
belliash a49d0804ce Add trap handlers for both i686 and amd64
ci/woodpecker/push/build Pipeline was successful
2023-02-02 23:31:32 +01:00
belliash 19f34d4b17 Cleanup the code
ci/woodpecker/push/build Pipeline was successful
2023-02-02 19:42:57 +01:00
belliash 715f875c4f Set alignment and packing properly
ci/woodpecker/push/build Pipeline was successful
2023-02-02 17:01:18 +01:00
belliash 2e2b01742a Definitions for setting structures alignment and packing
ci/woodpecker/push/build Pipeline was successful
2023-02-02 15:47:21 +01:00
belliash 73fc7607cd There is no need to specify alignment of the structure in the forward reference
ci/woodpecker/push/build Pipeline was successful
2023-02-02 15:37:57 +01:00
belliash 404f2f85c6 Cleanup the Interrupt Stack Table
ci/woodpecker/push/build Pipeline was successful
2023-02-01 23:47:57 +01:00
belliash 7fc1f04cd0 TSS entry is already put into GDT table, just initialize it
ci/woodpecker/push/build Pipeline was successful
2023-02-01 23:37:12 +01:00
belliash cbd21ced39 Use a size of the structure, not a pointer
ci/woodpecker/push/build Pipeline was successful
2023-02-01 22:38:36 +01:00
belliash dc1a94b982 This is 'Processor Block'
ci/woodpecker/push/build Pipeline was successful
2023-02-01 22:02:07 +01:00
belliash 3522539d4b Initialize Interrupt Descriptor Table (IDT)
ci/woodpecker/push/build Pipeline was successful
2023-02-01 21:56:17 +01:00
belliash 1ef205d47b Initialize DoubleFault and NonMaskableInterrupt TSS entries
ci/woodpecker/push/build Pipeline was successful
2023-02-01 20:36:40 +01:00
belliash e2813bcdaa Fix entries in Global Descriptor Table (GDT)
ci/woodpecker/push/build Pipeline was successful
2023-02-01 20:24:55 +01:00
belliash 21fbe6febe Add IDT related definitions
ci/woodpecker/push/build Pipeline was successful
2023-02-01 20:14:10 +01:00
belliash 5bbda188c6 IDT access levels and gate types
ci/woodpecker/push/build Pipeline was successful
2023-02-01 00:51:13 +01:00
belliash 9a1e9b1084 Define TSS offsets
ci/woodpecker/push/build Pipeline was successful
2023-01-30 23:43:10 +01:00
belliash 892c9eca86 Do not hardcode I/O map base
ci/woodpecker/push/build Pipeline was successful
2023-01-30 22:38:41 +01:00
belliash a761d3125a Architecture specific initialization prior to processor structures initialization
ci/woodpecker/push/build Pipeline was successful
2023-01-30 20:34:05 +01:00
belliash 6f068513cd Initial processor block initialization
ci/woodpecker/push/build Pipeline was successful
2023-01-30 19:07:05 +01:00
belliash ebe6792f2b Add MSR (Model Specific Registers) values
ci/woodpecker/push/build Pipeline was successful
2023-01-30 17:59:00 +01:00
belliash d3376ce33b This is no longer an idea
ci/woodpecker/push/build Pipeline was successful
2023-01-29 22:33:12 +01:00
belliash 2bf15a5bb8 Fix pointer offset in PE relocation code
ci/woodpecker/push/build Pipeline was successful
2023-01-29 20:38:05 +01:00
belliash ddffd0c582 Temporary kernel stack is no longer used
ci/woodpecker/push/build Pipeline was successful
2023-01-29 11:08:51 +01:00
belliash df11473eac Cleanup xtldr code as it no longer need to initialize CPU structures
ci/woodpecker/push/build Pipeline was successful
2023-01-29 10:59:22 +01:00
belliash bca7ac41b8 Initialize boot CPU structures inside kernel on i686 architecture
ci/woodpecker/push/build Pipeline was successful
2023-01-29 10:54:52 +01:00
belliash 7ac434cb99 Move architecture specific globals to external header, as ex. there is no GDT on ARM
ci/woodpecker/push/build Pipeline was successful
2023-01-29 09:48:59 +01:00
belliash 79a5027bca Cleanup AMD64 part of CPU initialization, as it has been moved to the kernel
ci/woodpecker/push/build Pipeline was successful
2023-01-29 01:01:36 +01:00
belliash ce4e590347 Add missing forward declaration of ArInitializeProcessor() routine
ci/woodpecker/push/build Pipeline was successful
2023-01-29 00:57:06 +01:00
belliash 900e71459a Add missing x86 descriptor sizes
ci/woodpecker/push/build Pipeline was successful
2023-01-29 00:54:36 +01:00
belliash ae60753e33 Add missing source files for i686 architecture
ci/woodpecker/push/build Pipeline was successful
2023-01-29 00:52:05 +01:00
belliash 7bf4a9ab8d Initialize boot CPU structures inside kernel on AMD64
ci/woodpecker/push/build Pipeline was successful
2023-01-29 00:45:17 +01:00