AnotherTest 
								
							 
						 
						
							
							
							
							
								
							
							
								09a43969ba 
								
							 
						 
						
							
							
								
								Everywhere: Replace dbgln<flag>(...) with dbgln_if(flag, ...)  
							
							... 
							
							
							
							Replacement made by `find Kernel Userland -name '*.h' -o -name '*.cpp' | sed -i -Ee 's/dbgln\b<(\w+)>\(/dbgln_if(\1, /g'` 
							
						 
						
							2021-02-08 18:08:55 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									asynts 
								
							 
						 
						
							
							
							
							
								
							
							
								7cf0c7cc0d 
								
							 
						 
						
							
							
								
								Meta: Split debug defines into multiple headers.  
							
							... 
							
							
							
							The following script was used to make these changes:
    #!/bin/bash
    set -e
    tmp=$(mktemp -d)
    echo "tmp=$tmp"
    find Kernel \( -name '*.cpp' -o -name '*.h' \) | sort > $tmp/Kernel.files
    find . \( -path ./Toolchain -prune -o -path ./Build -prune -o -path ./Kernel -prune \) -o \( -name '*.cpp' -o -name '*.h' \) -print | sort > $tmp/EverythingExceptKernel.files
    cat $tmp/Kernel.files | xargs grep -Eho '[A-Z0-9_]+_DEBUG' | sort | uniq > $tmp/Kernel.macros
    cat $tmp/EverythingExceptKernel.files | xargs grep -Eho '[A-Z0-9_]+_DEBUG' | sort | uniq > $tmp/EverythingExceptKernel.macros
    comm -23 $tmp/Kernel.macros $tmp/EverythingExceptKernel.macros > $tmp/Kernel.unique
    comm -1 $tmp/Kernel.macros $tmp/EverythingExceptKernel.macros > $tmp/EverythingExceptKernel.unique
    cat $tmp/Kernel.unique | awk '{ print "#cmakedefine01 "$1 }' > $tmp/Kernel.header
    cat $tmp/EverythingExceptKernel.unique | awk '{ print "#cmakedefine01 "$1 }' > $tmp/EverythingExceptKernel.header
    for macro in $(cat $tmp/Kernel.unique)
    do
        cat $tmp/Kernel.files | xargs grep -l $macro >> $tmp/Kernel.new-includes ||:
    done
    cat $tmp/Kernel.new-includes | sort > $tmp/Kernel.new-includes.sorted
    for macro in $(cat $tmp/EverythingExceptKernel.unique)
    do
        cat $tmp/Kernel.files | xargs grep -l $macro >> $tmp/Kernel.old-includes ||:
    done
    cat $tmp/Kernel.old-includes | sort > $tmp/Kernel.old-includes.sorted
    comm -23 $tmp/Kernel.new-includes.sorted $tmp/Kernel.old-includes.sorted > $tmp/Kernel.includes.new
    comm -13 $tmp/Kernel.new-includes.sorted $tmp/Kernel.old-includes.sorted > $tmp/Kernel.includes.old
    comm -12 $tmp/Kernel.new-includes.sorted $tmp/Kernel.old-includes.sorted > $tmp/Kernel.includes.mixed
    for file in $(cat $tmp/Kernel.includes.new)
    do
        sed -i -E 's/#include <AK\/Debug\.h>/#include <Kernel\/Debug\.h>/' $file
    done
    for file in $(cat $tmp/Kernel.includes.mixed)
    do
        echo "mixed include in $file, requires manual editing."
    done 
							
						 
						
							2021-01-26 21:20:00 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									asynts 
								
							 
						 
						
							
							
							
							
								
							
							
								8465683dcf 
								
							 
						 
						
							
							
								
								Everywhere: Debug macros instead of constexpr.  
							
							... 
							
							
							
							This was done with the following script:
    find . \( -name '*.cpp' -o -name '*.h' -o -name '*.in' \) -not -path './Toolchain/*' -not -path './Build/*' -exec sed -i -E 's/dbgln<debug_([a-z_]+)>/dbgln<\U\1_DEBUG>/' {} \;
    find . \( -name '*.cpp' -o -name '*.h' -o -name '*.in' \) -not -path './Toolchain/*' -not -path './Build/*' -exec sed -i -E 's/if constexpr \(debug_([a-z0-9_]+)/if constexpr \(\U\1_DEBUG/' {} \; 
							
						 
						
							2021-01-25 09:47:36 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									asynts 
								
							 
						 
						
							
							
							
							
								
							
							
								acdcf59a33 
								
							 
						 
						
							
							
								
								Everywhere: Remove unnecessary debug comments.  
							
							... 
							
							
							
							It would be tempting to uncomment these statements, but that won't work
with the new changes.
This was done with the following commands:
    find . \( -name '*.cpp' -o -name '*.h' -o -name '*.in' \) -not -path './Toolchain/*' -not -path './Build/*' -exec awk -i inplace '$0 !~ /\/\/#define/ { if (!toggle) { print; } else { toggle = !toggle } } ; $0 ~/\/\/#define/ { toggle = 1 }' {} \;
    find . \( -name '*.cpp' -o -name '*.h' -o -name '*.in' \) -not -path './Toolchain/*' -not -path './Build/*' -exec awk -i inplace '$0 !~ /\/\/ #define/ { if (!toggle) { print; } else { toggle = !toggle } } ; $0 ~/\/\/ #define/ { toggle = 1 }' {} \; 
							
						 
						
							2021-01-25 09:47:36 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									asynts 
								
							 
						 
						
							
							
							
							
								
							
							
								67583bc424 
								
							 
						 
						
							
							
								
								Everywhere: Replace a bundle of dbg with dbgln.  
							
							... 
							
							
							
							These changes are arbitrarily divided into multiple commits to make it
easier to find potentially introduced bugs with git bisect. 
							
						 
						
							2021-01-22 22:14:30 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tom 
								
							 
						 
						
							
							
							
							
								
							
							
								7a4fb5deef 
								
							 
						 
						
							
							
								
								Kernel: Don't remap IOAPIC registers every time we try to read/write  
							
							... 
							
							
							
							Remapping these registers every time we try to read from or write to
them causes a lot of SMP broadcasts and a lot of other overhead.
This improves boot time noticeably. 
							
						 
						
							2020-11-01 10:30:20 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ben Wiederhake 
								
							 
						 
						
							
							
							
							
								
							
							
								eac3bbdcee 
								
							 
						 
						
							
							
								
								Kernel: Unbreak building with extra debug macros, part 1  
							
							
							
						 
						
							2020-08-30 09:43:49 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tom 
								
							 
						 
						
							
							
							
							
								
							
							
								0bc92c259d 
								
							 
						 
						
							
							
								
								Kernel: Detect APs and boot them into protected mode  
							
							... 
							
							
							
							This isn't fully working, the APs pretend like they're
fully initialized and are just halted permanently for now. 
							
						 
						
							2020-06-04 18:15:23 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a75c290e51 
								
							 
						 
						
							
							
								
								Kernel: Use TypedMapping for accessing IOAPIC registers  
							
							
							
						 
						
							2020-05-23 15:57:48 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d92f62db43 
								
							 
						 
						
							
							
								
								Kernel: Remove ref-counting from interrupt override metadata  
							
							... 
							
							
							
							I don't see a reason for these to be reference-counted, and removing it
simplifies a bunch of surrounding data structures. 
							
						 
						
							2020-05-08 21:12:16 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Liav A 
								
							 
						 
						
							
							
							
							
								
							
							
								8d9b6c57b5 
								
							 
						 
						
							
							
								
								Interrupts: Use Optional container in IOAPIC  
							
							... 
							
							
							
							We return the Optional container in find_redirection_entry_by_vector()
method instead of a raw integer. This makes the code more readable and
correct. 
							
						 
						
							2020-03-24 16:15:33 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Liav A 
								
							 
						 
						
							
							
							
							
								
							
							
								0b7fc525e1 
								
							 
						 
						
							
							
								
								Interrupts: Simplify IRQ disabling & enabling in IRQController(s)  
							
							... 
							
							
							
							Instead of blindly setting masks, if we want to disable an IRQ and it's
already masked, we just return. The same happens if we want to enable an
IRQ and it's unmasked. 
							
						 
						
							2020-03-24 16:15:33 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Liav A 
								
							 
						 
						
							
							
							
							
								
							
							
								f86be46c98 
								
							 
						 
						
							
							
								
								Kernel: Abstract IRQ controller handling from Interrupt handlers  
							
							... 
							
							
							
							Now we don't send raw numbers, but we let the IRQController object to
figure out the correct IRQ number.
This helps in a situation when we have 2 or more IOAPICs, so if IOAPIC
1 is assigned for IRQs 0-23 and IOAPIC 2 is assigned for IRQs 24-47,
if an IRQHandler of IRQ 25 invokes disable() for example, it will call
his responsible IRQController (IOAPIC 2), and the IRQController will
subtract the IRQ number with his assigned offset, and the result is that
the second redirection entry in IOAPIC 2 will be masked. 
							
						 
						
							2020-03-24 16:15:33 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Liav A 
								
							 
						 
						
							
							
							
							
								
							
							
								c2c0e9fb04 
								
							 
						 
						
							
							
								
								Kernel: Ensure that we don't use a hard-disabled IRQController  
							
							
							
						 
						
							2020-03-24 16:15:33 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								7d862dd5fc 
								
							 
						 
						
							
							
								
								AK: Reduce header dependency graph of String.h  
							
							... 
							
							
							
							String.h no longer pulls in StringView.h. We do this by moving a bunch
of String functions out-of-line. 
							
						 
						
							2020-03-23 13:48:44 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Liav A 
								
							 
						 
						
							
							
							
							
								
							
							
								30fc78bfaf 
								
							 
						 
						
							
							
								
								Kernel: Acquire ISA interrupt overrides from Interrupt Management  
							
							... 
							
							
							
							Also, InterruptDisabler were added to prevent critical function from
being interrupted. In addition, the interrupt numbers are abstracted
from IDT offsets, thus, allowing to create a better routing scheme
when using IOAPICs for interrupt redirection. 
							
						 
						
							2020-03-06 10:32:32 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Liav A 
								
							 
						 
						
							
							
							
							
								
							
							
								f0ca29eb4b 
								
							 
						 
						
							
							
								
								Kernel: Run clang-format on various files  
							
							
							
						 
						
							2020-03-02 22:23:39 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Liav A 
								
							 
						 
						
							
							
							
							
								
							
							
								0fc60e41dd 
								
							 
						 
						
							
							
								
								Kernel: Use klog() instead of kprintf()  
							
							... 
							
							
							
							Also, duplicate data in dbg() and klog() calls were removed.
In addition, leakage of virtual address to kernel log is prevented.
This is done by replacing kprintf() calls to dbg() calls with the
leaked data instead.
Also, other kprintf() calls were replaced with klog(). 
							
						 
						
							2020-03-02 22:23:39 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Liav A 
								
							 
						 
						
							
							
							
							
								
							
							
								946d9b8c24 
								
							 
						 
						
							
							
								
								IOAPIC: Use dbg() instead of dbgprintf()  
							
							
							
						 
						
							2020-02-27 13:05:12 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Liav A 
								
							 
						 
						
							
							
							
							
								
							
							
								e760ebcacb 
								
							 
						 
						
							
							
								
								Kernel: Add the IOAPIC class  
							
							... 
							
							
							
							This class inherits from IRQController class, and represents
the 82093AA IOAPIC chip. 
							
						 
						
							2020-02-24 11:27:03 +01:00