Commit Graph

38 Commits

Author SHA1 Message Date
24b6cc2250 Use portable affinity mask for the idle process
The hardcoded value 0xFFFFFFFF restricted the idle process to the first 32 processors on 64-bit system.
2025-07-20 12:33:10 +02:00
76e1fc6099 Enable hardware layer initialization code 2024-06-04 21:36:09 +02:00
b4588d5b4c Make ExectOS only run on processors which support PAE 2024-05-24 16:30:39 +02:00
edbc2cc045 Initialize architecture specific hardware extensions 2024-05-22 22:53:29 +02:00
3d08be4fac Refactor kernel startup code 2024-05-12 09:06:24 +02:00
c34b6ff6c1 Take CPU number from processor block 2024-05-08 21:59:18 +02:00
38b0b2ac7d Use correct stack when using preallocated processor structures 2024-05-08 15:57:24 +02:00
8d6d27651c Implement KeGetCurrentProcessorNumber() routine 2024-05-07 18:52:43 +02:00
ac0b8ab36a Allow to specify CPU number when initializing (A)PIC 2024-05-07 16:16:49 +02:00
243aacc9c1 Cleanup thread context initialization code 2024-05-06 16:57:29 +02:00
e4155ee008 Lower runlevel to APC before initializing idle process 2024-05-05 21:48:58 +02:00
c98ad3862b Use kernel boot stack for the idle thread 2024-05-05 21:47:48 +02:00
b30d15719c Temporarily comment out thread code related to trap frame 2024-04-19 16:59:57 +02:00
77bc796769 Implement HlClearApicErrors() and HlSendEoi() routines, change HlDisableLegacyPic() calling convention 2024-02-09 15:11:14 +01:00
1e696258c2 Initialize framebuffer and processor 2023-11-29 22:49:15 +01:00
Jozef Nagy
c8a54e602b Disable legacy 8259 PIC before enabling APIC
Reviewed-on: xt-sys/exectos#5
Reviewed-by: Rafal Kupiec <belliash@noreply.codingworkshop.git>
Co-authored-by: Jozef Nagy <schkwve@gmail.com>
Co-committed-by: Jozef Nagy <schkwve@gmail.com>
2023-11-29 20:07:16 +01:00
d17b06a180 Register interrupt handlers once the APIC initialization is done 2023-11-28 14:20:23 +01:00
55cc62f5a0 Rename KIRQL to KRUNLEVEL type 2023-11-25 00:32:55 +01:00
d8403d01f5 Verify kernel and boot loader compatibility 2023-11-22 17:22:57 +01:00
5b6f3b0244 Mark user mode threads as not yet supported 2023-11-15 20:41:28 +01:00
d35dd4fce3 Save processor state during kernel initialization 2023-11-15 15:00:38 +01:00
fc85e0674b Let KeGetCurrentProcessorControlBlock() use CurrentPrcb field and correct comments 2023-11-13 15:36:50 +01:00
1d9a79736a Allow to postpone thread startup 2023-11-11 16:30:53 +01:00
362eefc2b3 Fixes in AMD64 version of KepInitializeThreadContext() to get rid of PageFault exception 2023-11-07 15:34:49 +01:00
91ce0f9947 Compensate missing return address, which is a 4-byte on i686 and an 8-byte on amd64 2023-11-05 20:07:13 +01:00
63f8dbc59b Initialize CPU power structures, idle process and idle thread 2023-11-02 23:07:11 +01:00
6d63750fc2 Rename KepArchInitialize() routine to KepInitializeMachine() 2023-10-29 10:38:23 +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
c4d1f1cd0d Initial implementation of the thread initialization 2023-02-23 20:11:21 +01:00
e4fa9bdead CurrentPrcb is needed here 2023-02-10 17:29:18 +01:00
c4a52938d2 Implement KeGetCurrentThread() routine 2023-02-08 23:58:24 +01:00
929d3dfae7 Implement KeGetCurrentProcessorBlock() and KeGetCurrentProcessorControlBlock() routines for both amd64 and i686 2023-02-08 16:39:05 +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
55cdae7c83 Initialize AMD64 processor registers 2023-02-04 23:40:03 +01:00
a761d3125a Architecture specific initialization prior to processor structures initialization 2023-01-30 20:34:05 +01:00
b57e79aa7f Proceed with architecture specific initialization 2023-01-25 19:37:13 +01:00
12b8c5f539 Switch kernel stack and move boot structures initialization into separate routine 2023-01-08 10:35:49 +01:00