Commit Graph

386 Commits

Author SHA1 Message Date
e0778d0a12 Introduce kernel executive 2023-03-16 23:40:38 +01:00
e6b64b741a Initialize thread context for i686 2023-03-15 23:05:18 +01:00
e05366815a NpxFrame is filled with zeroes, so there is no need to set all these stuff 2023-03-15 22:48:26 +01:00
5677719038 Initialize thread context for AMD64 2023-03-14 17:37:20 +01:00
8f653c47dc Initial Deferred Procedure Call (DPC) support 2023-03-05 22:56:16 +01:00
c5a9253ea8 Implement ArLoadLocalDescriptorTable() routine 2023-03-02 23:04:36 +01:00
dfae0b4727 Implement ArSetGdtEntryBase() routine 2023-03-02 22:51:57 +01:00
9f311db9fc Describe PO subsystem 2023-03-02 19:27:52 +01:00
e81fb68357 Initial support processor idle functionality 2023-03-02 16:25:41 +01:00
d57cdba56c Remove undefined extra token from the end of #include directive 2023-02-27 20:18:50 +01:00
e41de62dab Implement ArYieldProcessor() routine 2023-02-27 17:28:20 +01:00
286fc76577 First attempt on SEH usage; currently this does not take an effect due to missing exception dispatcher 2023-02-26 22:08:02 +01:00
2f1c5a22a5 Add __C_specific_handler() and _except_handler3() stubs allowing to use '__try {} __except() {}' (SEH) constructions 2023-02-25 23:01:13 +01:00
57dee5c535 Reorder parameters in KeInitializeThread() 2023-02-24 22:29:38 +01:00
9c74aafe3d Initial implementation of process initialization 2023-02-24 19:52:20 +01:00
c4d1f1cd0d Initial implementation of the thread initialization 2023-02-23 20:11:21 +01:00
cbca1e21c6 Add missing forward reference to KeInitializeThread() 2023-02-21 22:49:13 +01:00
88c17982e4 Thread initialization stub 2023-02-21 22:30:56 +01:00
757ab280f7 Declare variable at the beginning of routine 2023-02-21 19:22:53 +01:00
d427ca20fb Always include xtos.h in kernel sources 2023-02-20 00:21:52 +01:00
9a27d52efe Correct typo 2023-02-18 00:07:12 +01:00
3354075900 Initial Asynchronous Procedure Call (APC) support 2023-02-18 00:04:51 +01:00
08405e7bdc Ad more routines for semaphores support 2023-02-17 09:40:18 +01:00
03bae53fb9 Export semaphore, spinlock and timer initialization routines 2023-02-16 22:33:54 +01:00
ccaa28399a Initial semaphores support 2023-02-16 19:29:36 +01:00
525cc116ee Update description 2023-02-16 19:27:01 +01:00
98884516a1 Implement KeInitializeSpinLock() routine 2023-02-16 18:34:46 +01:00
b2456fd18a Implement kernel timer initialization routines 2023-02-16 17:56:35 +01:00
92a461d1e0 Add notes for MM 2023-02-15 23:44:10 +01:00
9ea1be96db Implement MmZeroPages() routine 2023-02-15 20:48:48 +01:00
b1c2b209e3 Implement RtlGetStackLimits() routine 2023-02-15 20:12:58 +01:00
28b760b089 Add stubs for allocating and freeing kernel stacks 2023-02-14 22:35:16 +01:00
d8bc45e3bb Move HL related global variables into separate file 2023-02-13 23:41:24 +01:00
050f24f877 Implement routines for atomically work with linked lists 2023-02-13 22:36:03 +01:00
9e5fb84412 More routines for performing atomic bitwise AND/OR/XOR operations 2023-02-12 23:11:23 +01:00
5a86d61b78 Implement routines for performing atomic operations 2023-02-12 22:46:58 +01:00
b43afac326 Cleanup definitions in kernel headers 2023-02-11 22:26:13 +01:00
e4fa9bdead CurrentPrcb is needed here 2023-02-10 17:29:18 +01:00
d72002187d Partially implement ArpIdentifyProcessor() 2023-02-10 17:23:47 +01:00
e645cf664c Set process and thread information in processor control block 2023-02-09 17:30:24 +01:00
47f399e987 Set current process and thread in processor control block 2023-02-09 00:02:45 +01:00
c4a52938d2 Implement KeGetCurrentThread() routine 2023-02-08 23:58:24 +01:00
9132c47cd9 Initial process and thread related structures 2023-02-08 23:40:58 +01:00
929d3dfae7 Implement KeGetCurrentProcessorBlock() and KeGetCurrentProcessorControlBlock() routines for both amd64 and i686 2023-02-08 16:39:05 +01:00
d8c68ed003 Add endian conversion routines 2023-02-08 16:33:57 +01:00
a32e18b237 Implement ArReadFSDualWord() routine 2023-02-07 23:19:22 +01:00
75c519a70c Use more generic name for this macro use pointer used behind it will point to kernel debugger after it gets initialized 2023-02-07 19:37:44 +01:00
67768ae7a3 Mark ArpIdentifyProcessor() as unimplemented 2023-02-06 16:15:24 +01:00
9c7d961c5a Architecture specific initialization after processor init is done 2023-02-06 15:53:11 +01:00
385f0e6de0 Not all AMD64 CPUs support large pages and global pages, unfortunately 2023-02-05 22:14:47 +01:00