Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								62185452f0 
								
							 
						 
						
							
							
								
								Kernel: Query OS-enabled CPUID features again at the end of cpu_setup()  
							
							... 
							
							
							
							For OSPKE this is a no-op as we don't enable PKU yet, but the state of
the OSXSAVE flag might have changed if we enabled XSAVE. 
							
						 
						
							2022-04-08 18:53:42 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								87aabb5ef7 
								
							 
						 
						
							
							
								
								Kernel: Rename OSPKU CPUID feature flag to OSPKE  
							
							... 
							
							
							
							Unlike "XSAVE enabled by OS" being indicated by the OSXSAVE flag, in
this case it's "PKU enabled by OS" being indicated by the OSPKE flag. 
							
						 
						
							2022-04-08 18:53:42 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tiaan Louw 
								
							 
						 
						
							
							
							
							
								
							
							
								678555af97 
								
							 
						 
						
							
							
								
								Kernel: Adjust includes after file reorganization  
							
							
							
						 
						
							2022-04-08 15:06:33 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								d94c7fa417 
								
							 
						 
						
							
							
								
								Kernel: Improve the aarch64 kernel source files disk layout  
							
							
							
						 
						
							2022-04-06 08:56:20 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								df9a833d7a 
								
							 
						 
						
							
							
								
								Kernel: Add VERIFY_NOT_REACHED to aarch64 PageDirectory.cpp  
							
							
							
						 
						
							2022-04-04 14:35:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								283d8e8f51 
								
							 
						 
						
							
							
								
								Kernel: Add VERIFY_NOT_REACHED to aarch64 locking functions  
							
							
							
						 
						
							2022-04-04 14:35:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								e98ea8a977 
								
							 
						 
						
							
							
								
								Kernel: Add VERIFY_NOT_REACHED to the aarch64 handle_crash function  
							
							
							
						 
						
							2022-04-04 14:35:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								d014c0501d 
								
							 
						 
						
							
							
								
								Kernel: Remove unused dummy function from dummy.cpp  
							
							
							
						 
						
							2022-04-04 14:35:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								bd7acd4b90 
								
							 
						 
						
							
							
								
								Kernel: Add VERIFY_NOT_REACHED to stub functions in aarch64 dummy.cpp  
							
							
							
						 
						
							2022-04-04 14:35:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								92a8383101 
								
							 
						 
						
							
							
								
								Kernel: Add VERIFY_NOT_REACHED to stub aarch64 Processor functions  
							
							
							
						 
						
							2022-04-04 14:35:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								463910df98 
								
							 
						 
						
							
							
								
								Kernel: Print out assertion info in __assertion_failed on aarch64  
							
							
							
						 
						
							2022-04-04 22:25:33 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								2b442ae44f 
								
							 
						 
						
							
							
								
								Kernel: Add kmalloc.cpp to aarch64  
							
							
							
						 
						
							2022-04-03 23:21:04 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								b0f701d053 
								
							 
						 
						
							
							
								
								Kernel: Convert ProcessorInfo::build_brand_string() to StringBuilder  
							
							
							
						 
						
							2022-04-03 23:20:33 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								3f9c2495e5 
								
							 
						 
						
							
							
								
								Kernel: Remove EBX, ECX, and EDX values from hypervisor dmesgln()  
							
							
							
						 
						
							2022-04-03 23:20:33 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								8d96525b9d 
								
							 
						 
						
							
							
								
								Kernel: Move hypervisor vendor ID string to ProcessorInfo  
							
							... 
							
							
							
							This will make it possible to expose it in /proc/cpuinfo. :^) 
							
						 
						
							2022-04-03 23:20:33 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								f6181cd47e 
								
							 
						 
						
							
							
								
								Kernel: Make ProcessorInfo::build_foo_string() private  
							
							
							
						 
						
							2022-04-03 23:20:33 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								afce63fffc 
								
							 
						 
						
							
							
								
								Kernel: Move feature string building to ProcessorInfo  
							
							... 
							
							
							
							Other than a dmesgln(), ProcessorInfo is the only user of this function
and is already responsible for building other CPUID-related strings. 
							
						 
						
							2022-04-03 23:20:33 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								53a95a5347 
								
							 
						 
						
							
							
								
								Kernel: Rename some ProcessorInfo members to match Intel manual  
							
							... 
							
							
							
							Let's use terminology from the the Intel manual to avoid confusion.
Also add `_string` suffixes to better distinguish the numeric values
from the string values. 
							
						 
						
							2022-04-03 23:20:33 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								ebe2cf8995 
								
							 
						 
						
							
							
								
								Kernel: Move private ProcessorInfo members to the end  
							
							
							
						 
						
							2022-04-03 23:20:33 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								9186ed3101 
								
							 
						 
						
							
							
								
								Kernel: Add all memory files to aarch64 and fix resulting linker errors  
							
							
							
						 
						
							2022-04-02 19:34:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								d79c772c87 
								
							 
						 
						
							
							
								
								Kernel: Make MemoryManager compile on aarch64  
							
							
							
						 
						
							2022-04-02 19:34:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								6299a69253 
								
							 
						 
						
							
							
								
								Kernel: Make handle_crash available to aarch64  
							
							
							
						 
						
							2022-04-02 19:34:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								d3b6201b40 
								
							 
						 
						
							
							
								
								Kernel: Make PageDirectory.cpp compile on aarch64  
							
							
							
						 
						
							2022-04-02 19:34:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								783a44b18e 
								
							 
						 
						
							
							
								
								Kernel: Make PhysicalRegion.cpp compile on aarch64  
							
							
							
						 
						
							2022-04-02 19:34:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								627fd231d5 
								
							 
						 
						
							
							
								
								Kernel: Make Region.cpp compile on aarch64  
							
							
							
						 
						
							2022-04-02 19:34:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								a883079b29 
								
							 
						 
						
							
							
								
								Kernel: Add missing new/delete and kcalloc to dummy.cpp  
							
							
							
						 
						
							2022-04-02 19:34:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								031b0c76b5 
								
							 
						 
						
							
							
								
								Kernel: Re-add dummy.cpp and remove duplicate definitions  
							
							
							
						 
						
							2022-04-02 19:34:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								d50e237281 
								
							 
						 
						
							
							
								
								Kernel: Add idle_thread() to aarch64 Processor.h  
							
							
							
						 
						
							2022-04-02 19:34:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									James Mintram 
								
							 
						 
						
							
							
							
							
								
							
							
								026efae8a8 
								
							 
						 
						
							
							
								
								Kernel: Add PAGE_MASK to an aarch64 CPU header  
							
							
							
						 
						
							2022-04-02 19:34:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								086969277e 
								
							 
						 
						
							
							
								
								Everywhere: Run clang-format  
							
							
							
						 
						
							2022-04-01 21:24:45 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								1e82c2708d 
								
							 
						 
						
							
							
								
								Kernel: Support all AMD-defined CPUID feature flags for EAX=80000001h  
							
							... 
							
							
							
							We're now able to detect all the AMD-defined CPUID feature flags from
ECX/EDX for EAX=80000001h :^) 
							
						 
						
							2022-03-27 18:54:56 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								96e6420d8d 
								
							 
						 
						
							
							
								
								Kernel: Support all Intel-defined extended CPUID feature flags for EAX=7  
							
							... 
							
							
							
							We're now able to detect all the extended CPUID feature flags from
EBX/ECX/EDX for EAX=7 :^) 
							
						 
						
							2022-03-27 18:54:56 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								6ca03b915e 
								
							 
						 
						
							
							
								
								Kernel: Support all Intel-defined CPUID feature flags for EAX=1  
							
							... 
							
							
							
							We're now able to detect all the regular CPUID feature flags from
ECX/EDX for EAX=1 :^)
None of the new ones are being used for anything yet, but they will show
up in /proc/cpuinfo and subsequently lscpu and SystemMonitor.
Note that I replaced the periods from the SSE 4.1 and 4.2 instructions
with underscores, which matches the internal enum names, Linux's
/proc/cpuinfo and the general pattern of replacing special characters
with underscores to limit feature names to [a-z0-9_].
The enum member stringification has been moved to a new function for
better re-usability and to avoid cluttering up Processor.cpp. 
							
						 
						
							2022-03-27 18:54:56 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								bc7ec02a82 
								
							 
						 
						
							
							
								
								Kernel: Implement CPUFeature as an ArbitrarySizedEnum  
							
							... 
							
							
							
							This will make it possible to add many, many more CPU features - more
than the current limit 32 and later limit of 64 if we stick with an enum
class to be specific :^) 
							
						 
						
							2022-03-27 18:54:56 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								e284ee7dcf 
								
							 
						 
						
							
							
								
								Kernel: Fix whack formatting of the CPUID constructor  
							
							
							
						 
						
							2022-03-27 18:54:56 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								c895780829 
								
							 
						 
						
							
							
								
								Kernel: Reorder code in Processor::cpu_detect() for readability  
							
							... 
							
							
							
							Checks of ECX go before EDX, and the bit indices are now ordered
properly. Additionally, handling of the EDX[11] bit has been moved into
a lambda function to keep the series of if statements neatly together.
All of this makes it *a lot* easier to follow along and compare the
implementation to the tables in the Intel manual, e.g. to find missing
checks. 
							
						 
						
							2022-03-27 18:54:56 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Hendiadyoin1 
								
							 
						 
						
							
							
							
							
								
							
							
								150e6a59c0 
								
							 
						 
						
							
							
								
								Kernel: Add and use bitwise operators to CPUFeature  
							
							
							
						 
						
							2022-03-22 18:20:01 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								a9764dabee 
								
							 
						 
						
							
							
								
								Kernel: Add helpers for rdrand and rdseed  
							
							
							
						 
						
							2022-03-21 23:33:42 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lenny Maiorani 
								
							 
						 
						
							
							
							
							
								
							
							
								190cf1507b 
								
							 
						 
						
							
							
								
								Kernel: Use default constructors/destructors  
							
							... 
							
							
							
							https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#cother-other-default-operation-rules 
"The compiler is more likely to get the default semantics right and
you cannot implement these functions better than the compiler." 
						
							2022-03-17 00:51:36 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jakub V. Flasar 
								
							 
						 
						
							
							
							
							
								
							
							
								6d2c298b66 
								
							 
						 
						
							
							
								
								Kernel: Move aarch64 Prekernel into Kernel  
							
							... 
							
							
							
							As there is no need for a Prekernel on aarch64, the Prekernel code was
moved into Kernel itself. The functionality remains the same.
SERENITY_KERNEL_AND_INITRD in run.sh specifies a kernel and an inital
ramdisk to be used by the emulator. This is needed because aarch64
does not need a Prekernel and the other ones do. 
							
						 
						
							2022-03-12 14:54:12 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jakub V. Flasar 
								
							 
						 
						
							
							
							
							
								
							
							
								f94293f121 
								
							 
						 
						
							
							
								
								Kernel: Create a stub mcontext for aarch64  
							
							... 
							
							
							
							The struct only has a stub integer so that the size is the same for C
and C++. Something caught by CLion.
This commit was made with mrkct's help! 
							
						 
						
							2022-03-12 14:54:12 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								23f6a00162 
								
							 
						 
						
							
							
								
								Kernel: Fix silly unintentional use of operator,  
							
							... 
							
							
							
							Everyone's favourite activity, copy pasta, has produced yet another
confusing use of operator,; fix this and make it less confusing. 
							
						 
						
							2022-03-04 20:07:05 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								4bd01b7fe9 
								
							 
						 
						
							
							
								
								Kernel: Add support for SA_SIGINFO  
							
							... 
							
							
							
							We currently don't really populate most of the fields, but that can
wait :^) 
							
						 
						
							2022-03-04 20:07:05 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								f4875b9967 
								
							 
						 
						
							
							
								
								Kernel: Add Processor::try_for_each() for fallible iteration  
							
							... 
							
							
							
							This API will allow users to short circuit iteration and properly
propagate errors. 
							
						 
						
							2022-02-27 20:37:57 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								011bd06053 
								
							 
						 
						
							
							
								
								Kernel: Set CS selector when initializing thread context on x86_64  
							
							... 
							
							
							
							These are not technically required, since the Thread constructor
already sets these, but they are set on i686, so let's try and keep
consistent behaviour between the different archs. 
							
						 
						
							2022-02-27 00:38:00 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tom 
								
							 
						 
						
							
							
							
							
								
							
							
								6448964485 
								
							 
						 
						
							
							
								
								Kernel: Implement booting all CPU cores on x86_64  
							
							... 
							
							
							
							The AP boot code was partially adapted to build on x86_64 but didn't
properly jump into 64 bit mode. Furthermore, the APIC code was still
using 32 bit pointers.
Fixes  #12662  
							
						 
						
							2022-02-21 17:46:02 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Marco Cutecchia 
								
							 
						 
						
							
							
							
							
								
							
							
								a9dbb52deb 
								
							 
						 
						
							
							
								
								Kernel: Add 'RegisterState' & 'KString::try_create' stubs for aarch64  
							
							... 
							
							
							
							The aarch64 build was broken due to missing these two things, this
commit adds two empty stubs for them 
							
						 
						
							2022-02-18 01:48:18 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								1aad64fbe4 
								
							 
						 
						
							
							
								
								Kernel: Workaround QEMU hypervisor.framework CPUID max leaf bug  
							
							... 
							
							
							
							This works around issue #10382  until it is fixed on QEMU's side.
Patch from Anonymous. 
							
						 
						
							2022-02-11 02:45:34 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lenny Maiorani 
								
							 
						 
						
							
							
							
							
								
							
							
								c6acf64558 
								
							 
						 
						
							
							
								
								Kernel: Change static constexpr variables to constexpr where possible  
							
							... 
							
							
							
							Function-local `static constexpr` variables can be `constexpr`. This
can reduce memory consumption, binary size, and offer additional
compiler optimizations.
These changes result in a stripped x86_64 kernel binary size reduction
of 592 bytes. 
							
						 
						
							2022-02-09 21:04:51 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								35e24bc774 
								
							 
						 
						
							
							
								
								Kernel: Move Spinlock lock/unlock functions out of line  
							
							... 
							
							
							
							I don't see why these have to be inlined everywhere in the kernel. 
							
						 
						
							2022-02-03 16:11:26 +01:00