Commit Graph
38 Commits
Author SHA1 Message Date
harraiken 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
belliash 76e1fc6099 Enable hardware layer initialization code 2024-06-04 21:36:09 +02:00
belliash b4588d5b4c Make ExectOS only run on processors which support PAE 2024-05-24 16:30:39 +02:00
belliash edbc2cc045 Initialize architecture specific hardware extensions 2024-05-22 22:53:29 +02:00
belliash 3d08be4fac Refactor kernel startup code 2024-05-12 09:06:24 +02:00
belliash c34b6ff6c1 Take CPU number from processor block 2024-05-08 21:59:18 +02:00
belliash 38b0b2ac7d Use correct stack when using preallocated processor structures 2024-05-08 15:57:24 +02:00
belliash 8d6d27651c Implement KeGetCurrentProcessorNumber() routine 2024-05-07 18:52:43 +02:00
belliash ac0b8ab36a Allow to specify CPU number when initializing (A)PIC 2024-05-07 16:16:49 +02:00
belliash 243aacc9c1 Cleanup thread context initialization code 2024-05-06 16:57:29 +02:00
belliash e4155ee008 Lower runlevel to APC before initializing idle process 2024-05-05 21:48:58 +02:00
belliash c98ad3862b Use kernel boot stack for the idle thread 2024-05-05 21:47:48 +02:00
belliash b30d15719c Temporarily comment out thread code related to trap frame 2024-04-19 16:59:57 +02:00
belliash 77bc796769 Implement HlClearApicErrors() and HlSendEoi() routines, change HlDisableLegacyPic() calling convention 2024-02-09 15:11:14 +01:00
belliash 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
belliash d17b06a180 Register interrupt handlers once the APIC initialization is done 2023-11-28 14:20:23 +01:00
belliash 55cc62f5a0 Rename KIRQL to KRUNLEVEL type 2023-11-25 00:32:55 +01:00
belliash d8403d01f5 Verify kernel and boot loader compatibility 2023-11-22 17:22:57 +01:00
belliash 5b6f3b0244 Mark user mode threads as not yet supported 2023-11-15 20:41:28 +01:00
belliash d35dd4fce3 Save processor state during kernel initialization 2023-11-15 15:00:38 +01:00
belliash fc85e0674b Let KeGetCurrentProcessorControlBlock() use CurrentPrcb field and correct comments 2023-11-13 15:36:50 +01:00
belliash 1d9a79736a Allow to postpone thread startup 2023-11-11 16:30:53 +01:00
belliash 362eefc2b3 Fixes in AMD64 version of KepInitializeThreadContext() to get rid of PageFault exception 2023-11-07 15:34:49 +01:00
belliash 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
belliash 63f8dbc59b Initialize CPU power structures, idle process and idle thread 2023-11-02 23:07:11 +01:00
belliash 6d63750fc2 Rename KepArchInitialize() routine to KepInitializeMachine() 2023-10-29 10:38:23 +01:00
belliash e05366815a NpxFrame is filled with zeroes, so there is no need to set all these stuff 2023-03-15 22:48:26 +01:00
belliash 5677719038 Initialize thread context for AMD64 2023-03-14 17:37:20 +01:00
belliash c4d1f1cd0d Initial implementation of the thread initialization 2023-02-23 20:11:21 +01:00
belliash e4fa9bdead CurrentPrcb is needed here 2023-02-10 17:29:18 +01:00
belliash c4a52938d2 Implement KeGetCurrentThread() routine 2023-02-08 23:58:24 +01:00
belliash 929d3dfae7 Implement KeGetCurrentProcessorBlock() and KeGetCurrentProcessorControlBlock() routines for both amd64 and i686 2023-02-08 16:39:05 +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 2023-02-07 19:37:44 +01:00
belliash 55cdae7c83 Initialize AMD64 processor registers 2023-02-04 23:40:03 +01:00
belliash a761d3125a Architecture specific initialization prior to processor structures initialization 2023-01-30 20:34:05 +01:00
belliash b57e79aa7f Proceed with architecture specific initialization 2023-01-25 19:37:13 +01:00
belliash 12b8c5f539 Switch kernel stack and move boot structures initialization into separate routine 2023-01-08 10:35:49 +01:00